/usr/share/doc/libntl-dev/NTL/vec_GF2E.cpp.html is in libntl-dev 9.9.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 103 104 105 106 107 108 109 110 111 112 | <!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_GF2E.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_GF2E</i></font><br>
<br>
<font color="#0000ed"><i>SUMMARY:</i></font><br>
<br>
<font color="#0000ed"><i>Provides vectors over GF2E, 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/GF2E.h></font><br>
<font color="#1773cc">#include </font><font color="#4a6f8b"><NTL/vector.h></font><br>
<br>
<br>
<font color="#008b00"><b>typedef</b></font> Vec<GF2E> vec_GF2E; <font color="#0000ed"><i>// backward compatibility</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> mul(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> GF2E& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, GF2 b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>long</b></font> b);<br>
<br>
<font color="#008b00"><b>void</b></font> mul(vec_GF2E& x, <font color="#008b00"><b>const</b></font> GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_GF2E& x, GF2 a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<font color="#008b00"><b>void</b></font> mul(vec_GF2E& x, <font color="#008b00"><b>long</b></font> a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<font color="#0000ed"><i>// x = a * b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> add(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<font color="#0000ed"><i>// x = a + b</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> sub(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<font color="#0000ed"><i>// x = a - b = x + a</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> negate(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a);<br>
<font color="#0000ed"><i>// x = - a = a</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> clear(vec_GF2E& x);<br>
<font color="#0000ed"><i>// x = 0 (length unchanged)</i></font><br>
<br>
<font color="#008b00"><b>long</b></font> IsZero(<font color="#008b00"><b>const</b></font> vec_GF2E& a);<br>
<font color="#0000ed"><i>// test if a is the zero vector</i></font><br>
<br>
<br>
<br>
<font color="#008b00"><b>void</b></font> InnerProduct(GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<font color="#0000ed"><i>// x = sum_{i=0}^{n-1} a[i]*b[i], where n = min(a.length(), b.length())</i></font><br>
<br>
<font color="#008b00"><b>void</b></font> InnerProduct(GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& 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_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>long</b></font> n);<br>
vec_GF2E VectorCopy(<font color="#008b00"><b>const</b></font> vec_GF2E& 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>
<font color="#0000ed"><i>// operator notation:</i></font><br>
<br>
vec_GF2E <br>
<font color="#b02f60"><b>operator</b></font>+(<font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<br>
vec_GF2E <br>
<font color="#b02f60"><b>operator</b></font>-(<font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>-(<font color="#008b00"><b>const</b></font> vec_GF2E& a);<br>
<br>
<br>
<font color="#0000ed"><i>// vector/scalar multiplication:</i></font><br>
<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> GF2E& b);<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> vec_GF2E& a, GF2 b);<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>long</b></font> b);<br>
<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>*(GF2 a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
vec_GF2E <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>long</b></font> a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<br>
<font color="#0000ed"><i>// inner product:</i></font><br>
<br>
GF2E <font color="#b02f60"><b>operator</b></font>*(<font color="#008b00"><b>const</b></font> vec_GF2E& a, <font color="#008b00"><b>const</b></font> vec_GF2E& b);<br>
<br>
<br>
<font color="#0000ed"><i>// assignment operator notation:</i></font><br>
<br>
vec_GF2E& <font color="#b02f60"><b>operator</b></font>+=(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a);<br>
vec_GF2E& <font color="#b02f60"><b>operator</b></font>-=(vec_GF2E& x, <font color="#008b00"><b>const</b></font> vec_GF2E& a);<br>
<br>
vec_GF2E& <font color="#b02f60"><b>operator</b></font>*=(vec_GF2E& x, <font color="#008b00"><b>const</b></font> GF2E& a);<br>
vec_GF2E& <font color="#b02f60"><b>operator</b></font>*=(vec_GF2E& x, GF2 a);<br>
vec_GF2E& <font color="#b02f60"><b>operator</b></font>*=(vec_GF2E& x, <font color="#008b00"><b>long</b></font> a);<br>
<br>
<br>
<br>
<font color="#0000ed"><i>// Implementation note: the BlockConstruct routine has been customized</i></font><br>
<font color="#0000ed"><i>// for GF2E so that when a vec_GF2E is grown, space for the needed</i></font><br>
<font color="#0000ed"><i>// elements is allocated in one contiguous chunk. This saves on calls to</i></font><br>
<font color="#0000ed"><i>// malloc and free, and should also yield better locality of reference.</i></font><br>
<font color="#0000ed"><i>// One consequence of this is that swapping an element of a vec_GF2E</i></font><br>
<font color="#0000ed"><i>// with another GF2E can not be implemented by pointer swap, and will in</i></font><br>
<font color="#0000ed"><i>// this case be done by copy.</i></font><br>
</font></body>
</html>
|