SymEngine C++ API
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
x
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
x
z
Enumerations
Enumerator
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
x
z
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
z
~
Variables
b
c
d
h
i
n
r
t
x
Related Functions
Files
File List
Globals
All
Macros
•
All
Data Structures
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Friends
Macros
Pages
symengine
monomials.cpp
1
#include <
symengine/monomials.h
>
2
3
namespace
SymEngine
4
{
5
6
// This is the fastest implementation:
7
void
monomial_mul
(
const
vec_int
&A,
const
vec_int
&B,
vec_int
&C)
8
{
9
size_t
n = A.
size
();
10
for
(
size_t
i = 0; i < n; ++i) {
11
C[i] = A[i] + B[i];
12
}
13
}
14
15
/*
16
// Other implementation of monomial_mul() are below. Those are slightly slower,
17
// so they are commented out.
18
19
// This is slightly slower than monomial_mul
20
void monomial_mul2(const vec_int &A, const vec_int &B, vec_int &C)
21
{
22
std::transform(A.begin(), A.end(), B.begin(), C.begin(), std::plus<int>());
23
}
24
25
// The same as monomial_mul2
26
void monomial_mul3(const vec_int &A, const vec_int &B, vec_int &C)
27
{
28
std::transform(A.begin(), A.end(), B.begin(), C.begin(),
29
[] (int a, int b) { return a + b; });
30
}
31
*/
32
33
}
// namespace SymEngine
monomials.h
SymEngine
Main namespace for SymEngine package.
Definition:
add.cpp:19
SymEngine::monomial_mul
void monomial_mul(const vec_int &A, const vec_int &B, vec_int &C)
Monomial multiplication.
Definition:
monomials.cpp:7
std::vector::size
T size(T... args)
std::vector< int >
Code