source: git/ntl/doc/vec_lzz_pE.txt @ 6ce030f

spielwiese
Last change on this file since 6ce030f was e6caf81, checked in by Hans Schönemann <hannes@…>, 20 years ago
*hannes: 5.3.2 git-svn-id: file:///usr/local/Singular/svn/trunk@7472 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.6 KB
Line 
1
2/**************************************************************************\
3
4MODULE: vec_zz_pE
5
6SUMMARY:
7
8Provides vectors over zz_pE, along with some related operations.
9
10\**************************************************************************/
11
12#include <NTL/lzz_pE.h>
13#include <NTL/vec_ZZ.h>
14#include <NTL/vector.h>
15
16NTL_vector_decl(zz_pE,vec_zz_pE)
17
18NTL_io_vector_decl(zz_pE,vec_zz_pE)
19// I/O operators are defined
20
21NTL_eq_vector_decl(zz_pE,vec_zz_pE)
22// operators == and != are defined
23
24void mul(vec_zz_pE& x, const vec_zz_pE& a, const zz_pE& b);
25void mul(vec_zz_pE& x, const vec_zz_pE& a, const zz_p& b);
26void mul(vec_zz_pE& x, const vec_zz_pE& a, long b);
27
28void mul(vec_zz_pE& x, const zz_pE& a, const vec_zz_pE& b);
29void mul(vec_zz_pE& x, const zz_p& a, const vec_zz_pE& b);
30void mul(vec_zz_pE& x, long a, const vec_zz_pE& b);
31// x = a * b
32
33void add(vec_zz_pE& x, const vec_zz_pE& a, const vec_zz_pE& b);
34// x = a + b
35
36void sub(vec_zz_pE& x, const vec_zz_pE& a, const vec_zz_pE& b);
37// x = a - b
38
39void clear(vec_zz_pE& x);
40// x = 0 (length unchanged)
41
42void negate(vec_zz_pE& x, const vec_zz_pE& a);
43// x = -a
44
45long IsZero(const vec_zz_pE& a);
46// test if a is the zero vector
47
48
49void InnerProduct(zz_pE& x, const vec_zz_pE& a, const vec_zz_pE& b);
50// x = sum_{i=0}^{n-1} a[i]*b[i], where n = min(a.length(),
51// b.length())
52
53void InnerProduct(zz_pE& x, const vec_zz_pE& a, const vec_zz_pE& b,
54                  long offset);
55// x = sum_{i=offset}^{n-1} a[i]*b[i-offset], where n = min(a.length(),
56// b.length()+offset)
57
58void VectorCopy(vec_zz_pE& x, const vec_zz_pE& a, long n);
59vec_zz_pE VectorCopy(const vec_zz_pE& a, long n);
60// x = a copy of a of length exactly n.
61// The input is truncated or padded with zeroes, as necessary.
62
63
64
65
66
67// operator notation:
68
69vec_zz_pE operator+(const vec_zz_pE& a, const vec_zz_pE& b);
70vec_zz_pE operator-(const vec_zz_pE& a, const vec_zz_pE& b);
71
72vec_zz_pE operator-(const vec_zz_pE& a);
73
74
75// vector/scalar multiplication:
76
77vec_zz_pE operator*(const vec_zz_pE& a, const zz_pE& b);
78vec_zz_pE operator*(const vec_zz_pE& a, const zz_p& b);
79vec_zz_pE operator*(const vec_zz_pE& a, long b);
80
81vec_zz_pE operator*(const zz_pE& a, const vec_zz_pE& b);
82vec_zz_pE operator*(const zz_p& a, const vec_zz_pE& b);
83vec_zz_pE operator*(long a, const vec_zz_pE& b);
84
85// inner product:
86
87zz_pE operator*(const vec_zz_pE& a, const vec_zz_pE& b);
88
89
90// assignment operator notation:
91
92vec_zz_pE& operator+=(vec_zz_pE& x, const vec_zz_pE& a);
93vec_zz_pE& operator-=(vec_zz_pE& x, const vec_zz_pE& a);
94
95vec_zz_pE& operator*=(vec_zz_pE& x, const zz_pE& a);
96vec_zz_pE& operator*=(vec_zz_pE& x, const zz_p& a);
97vec_zz_pE& operator*=(vec_zz_pE& x, long a);
98
Note: See TracBrowser for help on using the repository browser.