mgcpp
A C++ Math Library Based on CUDA
constant_expr.hpp
Go to the documentation of this file.
1 #ifndef CONSTANT_EXPR_HPP
2 #define CONSTANT_EXPR_HPP
3 
8 
9 namespace mgcpp {
10 
11 struct zeros_mat_expr_type;
12 
13 template <typename Expr>
14 using zeros_mat_expr = generic_expr<zeros_mat_expr_type,
15  0,
16  dmat_expr,
17  typename Expr::result_type,
18  1,
20 
21 template <typename Expr>
23  return zeros_mat_expr<Expr>(sym_shape(~expr));
24 }
25 
26 struct ones_mat_expr_type;
27 
28 template <typename Expr>
29 using ones_mat_expr = generic_expr<ones_mat_expr_type,
30  0,
31  dmat_expr,
32  typename Expr::result_type,
33  1,
35 
36 template <typename Expr>
38  return ones_mat_expr<Expr>(sym_shape(~expr));
39 }
40 
41 struct zeros_vec_expr_type;
42 
43 template <typename Expr>
44 using zeros_vec_expr = generic_expr<zeros_vec_expr_type,
45  0,
46  dvec_expr,
47  typename Expr::result_type,
48  1,
50 
51 template <typename Expr>
53  return zeros_vec_expr<Expr>(sym_shape(~expr));
54 }
55 
56 struct ones_vec_expr_type;
57 
58 template <typename Expr>
59 using ones_vec_expr = generic_expr<ones_vec_expr_type,
60  0,
61  dvec_expr,
62  typename Expr::result_type,
63  1,
65 
66 template <typename Expr>
68  return ones_vec_expr<Expr>(sym_shape(~expr));
69 }
70 
71 } // namespace mgcpp
72 
73 #endif // CONSTANT_EXPR_HPP
generic_expr< zeros_mat_expr_type, 0, dmat_expr, typename Expr::result_type, 1, symbolic_shape_expr< Expr > > zeros_mat_expr
Definition: constant_expr.hpp:19
zeros_mat_expr< Expr > make_zeros_like(dmat_expr< Expr > const &expr)
Definition: constant_expr.hpp:22
Definition: adapter_base.hpp:12
Definition: dvec_expr.hpp:20
ones_mat_expr< Expr > make_ones_like(dmat_expr< Expr > const &expr)
Definition: constant_expr.hpp:37
Definition: dmat_expr.hpp:19
Definition: forward.hpp:25
symbolic_shape_expr< Expr > sym_shape(Expr const &expr)
Definition: symbolic_shape_expr.hpp:25