HFE
Class Poly2MultiLinear

java.lang.Object
  |
  +--HFE.Poly2MultiLinear

final class Poly2MultiLinear
extends java.lang.Object

This class provides polynomials of degree one in n independent variables. The polynomials are over the finite field GF(2) which is provided in the class Field2.

Version:
0.1

Field Summary
private  int[] coeff
          Coefficients for the variables.
private  int varNum
          The number of variables in this polynomial.
 
Constructor Summary
Poly2MultiLinear()
          sets all the coefficients to zero assumes that the polynomial has no variables
Poly2MultiLinear(int varNum)
          Sets all the coefficients to zero by allocating new memory.
Poly2MultiLinear(int[] inArray)
          array2poly(int[])
Poly2MultiLinear(int varNum, int[] inArray)
          Creates a new object by using inArray for the coefficients.
Poly2MultiLinear(Poly2MultiLinear father)
          Creates a copy from the given polynomial.
 
Method Summary
 void add(Poly2MultiLinear whom)
          calculate this += whom as polynomial addition
 void add(Poly2MultiLinear a, Poly2MultiLinear b)
          calculates this = a + b as polynomial addition
 int apply(int[] values)
          Evaluate the polynomial using the given value vector The entry value[0] is _not_ uses, value[1] is the first valid entry.
static int apply(int[] coeffs, int[] values)
          Evaluate the polynomial using the given value vector and the given coefficient vector.
 void array2poly(int[] inArray)
          Sets the coefficients using the given coefficient.
 int coeff(int which)
          Returns the coefficient for a given variable.
 int[] coeffs()
          returns the coefficient array without copying it.
 int giveVarNum()
          returns the number of variables for that object
 void initMem()
          Allocates new memory for the coefficients.
 boolean isEqual(Poly2MultiLinear whom)
          Compares this and whom coefficientwise.
 boolean isZero()
          Checks if the polynomial is the zero polynomial.
static void main(java.lang.String[] args)
          Mainly invoces the testIt() method.
 void setCoeffs(int[] inArray)
          Sets all the coefficients by the given array.
 void setZero()
          Sets all the coefficients to zero
 void sub(Poly2MultiLinear whom)
          calculate this -= whom as polynomial subtraction
 void sub(Poly2MultiLinear a, Poly2MultiLinear b)
          calculates this = a - b as polynomial subtraction
static void testIt()
          Tests the functionality for the whole class.
 void writeString()
          Writes the polynomial as a string to stdout
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

varNum

private int varNum
The number of variables in this polynomial.

coeff

private int[] coeff
Coefficients for the variables. The variables are x_1..x_n where n is varNum. Position 0 is for the constant term.
Constructor Detail

Poly2MultiLinear

public Poly2MultiLinear()
sets all the coefficients to zero assumes that the polynomial has no variables

Poly2MultiLinear

public Poly2MultiLinear(int varNum)
Sets all the coefficients to zero by allocating new memory. Assumes that the polynomial has varNum variables.
Parameters:
varNum - number of variables for that polynomial

Poly2MultiLinear

public Poly2MultiLinear(Poly2MultiLinear father)
Creates a copy from the given polynomial. Uses memory copy for the coefficients.

Poly2MultiLinear

public Poly2MultiLinear(int[] inArray)
array2poly(int[])

Poly2MultiLinear

public Poly2MultiLinear(int varNum,
                        int[] inArray)
Creates a new object by using inArray for the coefficients. Does no checking for arguments, no memory copy.
Parameters:
varNum - number of variables for this object
inArray - coefficients for the multivaribale polynomial
Method Detail

coeff

public int coeff(int which)
Returns the coefficient for a given variable. Valid values: 0: constant term, 1..valNum: variable

coeffs

public int[] coeffs()
returns the coefficient array without copying it.

giveVarNum

public int giveVarNum()
returns the number of variables for that object

isEqual

public boolean isEqual(Poly2MultiLinear whom)
Compares this and whom coefficientwise. If the two polynomials have different number of variables they can not be equal.
Returns:
true iff all the coefficients are the same both objects

isZero

public boolean isZero()
Checks if the polynomial is the zero polynomial.
Returns:
true iff all coefficients are zero

setZero

public void setZero()
Sets all the coefficients to zero

initMem

public void initMem()
Allocates new memory for the coefficients. The coefficients are initalized with zero.

setCoeffs

public void setCoeffs(int[] inArray)
Sets all the coefficients by the given array. Does neither memory copy nor argument checking.

array2poly

public void array2poly(int[] inArray)
Sets the coefficients using the given coefficient. Copies the array and checks if the array has the right length.
Throws:
IllegalArgumentException: - array has the wrong length, needs to be (varNum+1)

add

public void add(Poly2MultiLinear a,
                Poly2MultiLinear b)
calculates this = a + b as polynomial addition

add

public void add(Poly2MultiLinear whom)
calculate this += whom as polynomial addition

sub

public void sub(Poly2MultiLinear a,
                Poly2MultiLinear b)
calculates this = a - b as polynomial subtraction

sub

public void sub(Poly2MultiLinear whom)
calculate this -= whom as polynomial subtraction

apply

public int apply(int[] values)
Evaluate the polynomial using the given value vector The entry value[0] is _not_ uses, value[1] is the first valid entry.
Parameters:
values - array with varNum+1 entries
Returns:
value of the current polynimial.

apply

public static int apply(int[] coeffs,
                        int[] values)
Evaluate the polynomial using the given value vector and the given coefficient vector. The entry value[0] is _not_ uses, value[1] is the first valid entry.
Parameters:
coeffs - coefficients of a multivariable, linear polynomial
values - values for the variables of the polynomial, value[1] is the value for the first variable, ...
Returns:
value of the current polynimial.

writeString

public void writeString()
Writes the polynomial as a string to stdout

testIt

public static void testIt()
Tests the functionality for the whole class. Reports errors to stdout.

main

public static void main(java.lang.String[] args)
Mainly invoces the testIt() method.