2#ifndef TENSORUTILITIES_H
3#define TENSORUTILITIES_H
19#include "../eigen/Eigen/Dense"
27void initialize_sequential(Tensor<type, 1>&);
29void multiply_rows(Tensor<type, 2>&,
const Tensor<type, 1>&);
30void divide_columns(Tensor<type, 2>&,
const Tensor<type, 1>&);
32bool is_zero(
const Tensor<type, 1>&);
33bool is_zero(
const Tensor<type,1>&,
const type&);
34bool is_constant(
const Tensor<type, 1>&);
36bool is_equal(
const Tensor<type, 2>&,
const type&,
const type& = type(0));
38bool are_equal(
const Tensor<type, 1>&,
const Tensor<type, 1>&,
const type& = type(0));
39bool are_equal(
const Tensor<type, 2>&,
const Tensor<type, 2>&,
const type& = type(0));
41bool is_false(
const Tensor<bool, 1>&);
43bool is_binary(
const Tensor<type, 2>&);
45void save_csv(
const Tensor<type,2>&,
const string&);
47Tensor<Index, 1> calculate_rank_greater(
const Tensor<type, 1>&);
48Tensor<Index, 1> calculate_rank_less(
const Tensor<type, 1>&);
50void scrub_missing_values(Tensor<type, 2>&,
const type&);
52type l1_norm(
const ThreadPoolDevice*,
const Tensor<type, 1>&);
53void l1_norm_gradient(
const ThreadPoolDevice*,
const Tensor<type, 1>&, Tensor<type, 1>&);
54void l1_norm_hessian(
const ThreadPoolDevice*,
const Tensor<type, 1>&, Tensor<type, 2>&);
56type l2_norm(
const ThreadPoolDevice*,
const Tensor<type, 1>&);
57void l2_norm_gradient(
const ThreadPoolDevice*,
const Tensor<type, 1>&, Tensor<type, 1>&);
58void l2_norm_hessian(
const ThreadPoolDevice*,
const Tensor<type, 1>&, Tensor<type, 2>&);
60Tensor<type, 2> kronecker_product(
const Tensor<type, 1>&,
const Tensor<type, 1>&);
62void sum_diagonal(Tensor<type, 2>&,
const type&);
64Tensor<type, 1> perform_Householder_QR_decomposition(
const Tensor<type, 2>&,
const Tensor<type, 1>&);
66void fill_submatrix(
const Tensor<type, 2>& matrix,
67 const Tensor<Index, 1>& rows_indices,
68 const Tensor<Index, 1>& columns_indices, type* submatrix);
70Index count_NAN(
const Tensor<type, 1>&);
72void check_size(
const Tensor<type, 1>&,
const Index&,
const string&);
74void check_dimensions(
const Tensor<type, 2>&,
const Index&,
const Index&,
const string&);
76void check_columns_number(
const Tensor<type, 2>&,
const Index&,
const string&);
78bool is_less_than(
const Tensor<type, 1>&,
const type&);
81Tensor<type, 2> assemble_vector_vector(
const Tensor<type, 1>&,
const Tensor<type, 1>&);
82Tensor<type, 2> assemble_vector_matrix(
const Tensor<type, 1>&,
const Tensor<type, 2>&);
83Tensor<type, 2> assemble_matrix_vector(
const Tensor<type, 2>&,
const Tensor<type, 1>&);
84Tensor<type, 2> assemble_matrix_matrix(
const Tensor<type, 2>&,
const Tensor<type, 2>&);
Extensions to the C++ standard library.