gslcpp
Modern-C++ Wrapper for GSL
mul.hpp
Go to the documentation of this file.
1 /// \file include/gslcpp/wrap/mul.hpp
2 /// \copyright 2022 Thomas E. Vaughan, all rights reserved.
3 /// \brief Definition of gsl::w_mul().
4 
5 #pragma once
6 #include "container.hpp" // w_vector
7 
8 namespace gsl {
9 
10 
11 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
12 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
13 /// @param u Pointer to vector that `v` will multiply into.
14 /// @param v Pointer to vector that will multiply in to `u`.
15 /// @return TBD: GSL's documentation does not specify.
16 inline int w_mul(w_vector<double> *u, w_vector<double const> *v) {
17  return gsl_vector_mul(u, v);
18 }
19 
20 
21 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
22 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
23 /// @param u Pointer to vector that `v` will multiply into.
24 /// @param v Pointer to vector that will multiply in to `u`.
25 /// @return TBD: GSL's documentation does not specify.
26 inline int w_mul(w_vector<float> *u, w_vector<float const> *v) {
27  return gsl_vector_float_mul(u, v);
28 }
29 
30 
31 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
32 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
33 /// @param u Pointer to vector that `v` will multiply into.
34 /// @param v Pointer to vector that will multiply in to `u`.
35 /// @return TBD: GSL's documentation does not specify.
36 inline int w_mul(w_vector<long double> *u, w_vector<long double const> *v) {
37  return gsl_vector_long_double_mul(u, v);
38 }
39 
40 
41 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
42 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
43 /// @param u Pointer to vector that `v` will multiply into.
44 /// @param v Pointer to vector that will multiply in to `u`.
45 /// @return TBD: GSL's documentation does not specify.
46 inline int w_mul(w_vector<int> *u, w_vector<int const> *v) {
47  return gsl_vector_int_mul(u, v);
48 }
49 
50 
51 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
52 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
53 /// @param u Pointer to vector that `v` will multiply into.
54 /// @param v Pointer to vector that will multiply in to `u`.
55 /// @return TBD: GSL's documentation does not specify.
56 inline int w_mul(w_vector<unsigned> *u, w_vector<unsigned const> *v) {
57  return gsl_vector_uint_mul(u, v);
58 }
59 
60 
61 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
62 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
63 /// @param u Pointer to vector that `v` will multiply into.
64 /// @param v Pointer to vector that will multiply in to `u`.
65 /// @return TBD: GSL's documentation does not specify.
66 inline int w_mul(w_vector<long> *u, w_vector<long const> *v) {
67  return gsl_vector_long_mul(u, v);
68 }
69 
70 
71 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
72 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
73 /// @param u Pointer to vector that `v` will multiply into.
74 /// @param v Pointer to vector that will multiply in to `u`.
75 /// @return TBD: GSL's documentation does not specify.
76 inline int
77 w_mul(w_vector<unsigned long> *u, w_vector<unsigned long const> *v) {
78  return gsl_vector_ulong_mul(u, v);
79 }
80 
81 
82 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
83 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
84 /// @param u Pointer to vector that `v` will multiply into.
85 /// @param v Pointer to vector that will multiply in to `u`.
86 /// @return TBD: GSL's documentation does not specify.
87 inline int w_mul(w_vector<short> *u, w_vector<short const> *v) {
88  return gsl_vector_short_mul(u, v);
89 }
90 
91 
92 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
93 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
94 /// @param u Pointer to vector that `v` will multiply into.
95 /// @param v Pointer to vector that will multiply in to `u`.
96 /// @return TBD: GSL's documentation does not specify.
97 inline int
98 w_mul(w_vector<unsigned short> *u, w_vector<unsigned short const> *v) {
99  return gsl_vector_ushort_mul(u, v);
100 }
101 
102 
103 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
104 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
105 /// @param u Pointer to vector that `v` will multiply into.
106 /// @param v Pointer to vector that will multiply in to `u`.
107 /// @return TBD: GSL's documentation does not specify.
108 inline int w_mul(w_vector<char> *u, w_vector<char const> *v) {
109  return gsl_vector_char_mul(u, v);
110 }
111 
112 
113 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
114 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
115 /// @param u Pointer to vector that `v` will multiply into.
116 /// @param v Pointer to vector that will multiply in to `u`.
117 /// @return TBD: GSL's documentation does not specify.
118 inline int
119 w_mul(w_vector<unsigned char> *u, w_vector<unsigned char const> *v) {
120  return gsl_vector_uchar_mul(u, v);
121 }
122 
123 
124 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
125 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
126 /// @param u Pointer to vector that `v` will multiply into.
127 /// @param v Pointer to vector that will multiply in to `u`.
128 /// @return TBD: GSL's documentation does not specify.
129 inline int
130 w_mul(w_vector<complex<double>> *u, w_vector<complex<double> const> *v) {
131  return gsl_vector_complex_mul(u, v);
132 }
133 
134 
135 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
136 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
137 /// @param u Pointer to vector that `v` will multiply into.
138 /// @param v Pointer to vector that will multiply in to `u`.
139 /// @return TBD: GSL's documentation does not specify.
140 inline int
141 w_mul(w_vector<complex<float>> *u, w_vector<complex<float> const> *v) {
142  return gsl_vector_complex_float_mul(u, v);
143 }
144 
145 
146 /// For vectors `u` and `v`, produce, element by element, `u = u * v`.
147 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_mul
148 /// @param u Pointer to vector that `v` will multiply into.
149 /// @param v Pointer to vector that will multiply in to `u`.
150 /// @return TBD: GSL's documentation does not specify.
151 inline int
152 w_mul(w_vector<complex<long double>> *u,
153  w_vector<complex<long double> const> *v) {
154  return gsl_vector_complex_long_double_mul(u, v);
155 }
156 
157 
158 } // namespace gsl
159 
160 // EOF
gsl::w_mul
int w_mul(w_vector< float > *u, w_vector< float const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:26
gsl::w_mul
int w_mul(w_vector< unsigned > *u, w_vector< unsigned const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:56
gsl::w_mul
int w_mul(w_vector< complex< long double >> *u, w_vector< complex< long double > const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:152
gsl::w_mul
int w_mul(w_vector< complex< double >> *u, w_vector< complex< double > const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:130
gsl::w_mul
int w_mul(w_vector< int > *u, w_vector< int const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:46
gsl::w_mul
int w_mul(w_vector< long > *u, w_vector< long const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:66
gsl::w_mul
int w_mul(w_vector< char > *u, w_vector< char const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:108
gsl::w_mul
int w_mul(w_vector< short > *u, w_vector< short const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:87
gsl::w_mul
int w_mul(w_vector< double > *u, w_vector< double const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:16
gsl::w_mul
int w_mul(w_vector< unsigned char > *u, w_vector< unsigned char const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:119
gsl::w_mul
int w_mul(w_vector< long double > *u, w_vector< long double const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:36
gsl::w_mul
int w_mul(w_vector< complex< float >> *u, w_vector< complex< float > const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:141
gsl::w_mul
int w_mul(w_vector< unsigned long > *u, w_vector< unsigned long const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:77
gsl::w_mul
int w_mul(w_vector< unsigned short > *u, w_vector< unsigned short const > *v)
For vectors u and v, produce, element by element, u = u * v.
Definition: mul.hpp:98
gsl
Namespace for C++-interface to GSL.
Definition: v-iface.hpp:51