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"><NTL/lzz_pE.h></font><br>
<font color="#1773cc">#include </font><font color="#4a6f8b"><NTL/vec_ZZ.h></font><br>
<font color="#1773cc">#include </font><font color="#4a6f8b"><NTL/vector.h></font><br>
<br>
<font color="#008b00"><b>typedef</b></font> Vec<zz_pE> vec_zz_pE; <font color="#0000ed"><i>// backward compatibility</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> mul(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> zz_pE& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> zz_p& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>long</b></font> b);<br>
<br>
<font color="#008b00"><b>void</b></font> mul(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> zz_p& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_zz_pE& x, <font color="#008b00"><b>long</b></font> a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<font color="#0000ed"><i>// x = a * b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> add(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<font color="#0000ed"><i>// x = a + b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> sub(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<font color="#0000ed"><i>// x = a - b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> clear(vec_zz_pE& x);<br>
<font color="#0000ed"><i>// x = 0 (length unchanged)</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> negate(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a);<br>
<font color="#0000ed"><i>// x = -a</i></font><br>
<br>
<font color="#008b00"><b>long</b></font> IsZero(<font color="#008b00"><b>const</b></font> vec_zz_pE& 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> InnerProduct(zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& 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> InnerProduct(zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b,<br>
<font color="#008b00"><b>long</b></font> 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> VectorCopy(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>long</b></font> n);<br>
vec_zz_pE VectorCopy(<font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>long</b></font> 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> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>-(<font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>-(<font color="#008b00"><b>const</b></font> vec_zz_pE& 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> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> zz_pE& b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> zz_p& b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> vec_zz_pE& a, <font color="#008b00"><b>long</b></font> b);<br>
<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> zz_p& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
vec_zz_pE <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>long</b></font> a, <font color="#008b00"><b>const</b></font> vec_zz_pE& 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> vec_zz_pE& a, <font color="#008b00"><b>const</b></font> vec_zz_pE& b);<br>
<br>
<br>
<font color="#0000ed"><i>// assignment operator notation:</i></font><br>
<br>
vec_zz_pE& <font color="#b02f60"><b>operator</b></font>+=(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a);<br>
vec_zz_pE& <font color="#b02f60"><b>operator</b></font>-=(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> vec_zz_pE& a);<br>
<br>
vec_zz_pE& <font color="#b02f60"><b>operator</b></font>*=(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> zz_pE& a);<br>
vec_zz_pE& <font color="#b02f60"><b>operator</b></font>*=(vec_zz_pE& x, <font color="#008b00"><b>const</b></font> zz_p& a);<br>
vec_zz_pE& <font color="#b02f60"><b>operator</b></font>*=(vec_zz_pE& x, <font color="#008b00"><b>long</b></font> a);<br>
<br>
</font></body>
</html>
|