File: vec_lzz_pE.cpp.html

package info (click to toggle)
ntl 9.9.1-3~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 6,348 kB
  • sloc: ansic: 78,019; cpp: 10,441; makefile: 350; sh: 14
file content (102 lines) | stat: -rw-r--r-- 7,992 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>/Volumes/unix-files/u/ntl-new/ntl-9.9.0dev/doc/vec_lzz_pE.cpp.html</title>
<meta name="Generator" content="Vim/7.1">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff" text="#000000"><font face="monospace">
<br>
<font color="#0000ed"><i>/*</i></font><font color="#0000ed"><i>*************************************************************************\</i></font><br>
<br>
<font color="#0000ed"><i>MODULE: vec_zz_pE</i></font><br>
<br>
<font color="#0000ed"><i>SUMMARY:</i></font><br>
<br>
<font color="#0000ed"><i>Provides vectors over zz_pE, along with some related operations.</i></font><br>
<br>
<font color="#0000ed"><i>\*************************************************************************</i></font><font color="#0000ed"><i>*/</i></font><br>
<br>
<font color="#1773cc">#include </font><font color="#4a6f8b">&lt;NTL/lzz_pE.h&gt;</font><br>
<font color="#1773cc">#include </font><font color="#4a6f8b">&lt;NTL/vec_ZZ.h&gt;</font><br>
<font color="#1773cc">#include </font><font color="#4a6f8b">&lt;NTL/vector.h&gt;</font><br>
<br>
<font color="#008b00"><b>typedef</b></font>&nbsp;Vec&lt;zz_pE&gt; vec_zz_pE; <font color="#0000ed"><i>// backward compatibility</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;mul(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;zz_pE&amp; b);<br>
<font color="#008b00"><b>void</b></font>&nbsp;mul(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;zz_p&amp; b);<br>
<font color="#008b00"><b>void</b></font>&nbsp;mul(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>long</b></font>&nbsp;b);<br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;mul(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<font color="#008b00"><b>void</b></font>&nbsp;mul(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;zz_p&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<font color="#008b00"><b>void</b></font>&nbsp;mul(vec_zz_pE&amp; x, <font color="#008b00"><b>long</b></font>&nbsp;a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<font color="#0000ed"><i>// x = a * b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;add(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<font color="#0000ed"><i>// x = a + b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;sub(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<font color="#0000ed"><i>// x = a - b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;clear(vec_zz_pE&amp; x);<br>
<font color="#0000ed"><i>// x = 0 (length unchanged)</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;negate(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a);<br>
<font color="#0000ed"><i>// x = -a</i></font><br>
<br>
<font color="#008b00"><b>long</b></font>&nbsp;IsZero(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a);<br>
<font color="#0000ed"><i>// test if a is the zero vector</i></font><br>
<br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;InnerProduct(zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<font color="#0000ed"><i>// x = sum_{i=0}^{n-1} a[i]*b[i], where n = min(a.length(),</i></font><br>
<font color="#0000ed"><i>// b.length())</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;InnerProduct(zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008b00"><b>long</b></font>&nbsp;offset);<br>
<font color="#0000ed"><i>// x = sum_{i=offset}^{n-1} a[i]*b[i-offset], where n = min(a.length(),</i></font><br>
<font color="#0000ed"><i>// b.length()+offset)</i></font><br>
<br>
<font color="#008b00"><b>void</b></font>&nbsp;VectorCopy(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>long</b></font>&nbsp;n);<br>
vec_zz_pE VectorCopy(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>long</b></font>&nbsp;n);<br>
<font color="#0000ed"><i>// x = a copy of a of length exactly n.</i></font><br>
<font color="#0000ed"><i>// The input is truncated or padded with zeroes, as necessary.</i></font><br>
<br>
<br>
<br>
<br>
<br>
<font color="#0000ed"><i>// operator notation:</i></font><br>
<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>+(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>-(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>-(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a);<br>
<br>
<br>
<font color="#0000ed"><i>// vector/scalar multiplication:</i></font><br>
<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;zz_pE&amp; b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;zz_p&amp; b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>long</b></font>&nbsp;b);<br>
<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font>&nbsp;zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font>&nbsp;zz_p&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>long</b></font>&nbsp;a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<br>
<font color="#0000ed"><i>// inner product:</i></font><br>
<br>
zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; b);<br>
<br>
<br>
<font color="#0000ed"><i>// assignment operator notation:</i></font><br>
<br>
vec_zz_pE&amp; <font color="#b02f60"><b>operator</b></font>+=(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a);<br>
vec_zz_pE&amp; <font color="#b02f60"><b>operator</b></font>-=(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;vec_zz_pE&amp; a);<br>
<br>
vec_zz_pE&amp; <font color="#b02f60"><b>operator</b></font>*=(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;zz_pE&amp; a);<br>
vec_zz_pE&amp; <font color="#b02f60"><b>operator</b></font>*=(vec_zz_pE&amp; x, <font color="#008b00"><b>const</b></font>&nbsp;zz_p&amp; a);<br>
vec_zz_pE&amp; <font color="#b02f60"><b>operator</b></font>*=(vec_zz_pE&amp; x, <font color="#008b00"><b>long</b></font>&nbsp;a);<br>
<br>
</font></body>
</html>