HFE
Class Poly4MultiLinear

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

final class Poly4MultiLinear
extends java.lang.Object

This class provides polynomials of degree one in n independent variables. The polynomials are over the finite field F_4 which is provided in the class Field4.

Version:
0.1

Field Summary
private  int[] coeff
          Coefficients for the variables.
private  int varNum
          The number of variables in this polynomial.
 
Constructor Summary
Poly4MultiLinear()
          sets all the coefficients to zero assumes that the polynomial has no variables
Poly4MultiLinear(int varNum)
          Sets all the coefficients to zero by allocating new memory.
Poly4MultiLinear(int[] inArray)
          array2poly(int[])
Poly4MultiLinear(int varNum, int[] inArray)
          Creates a new object by using inArray for the coefficients.
Poly4MultiLinear(Poly4MultiLinear father)
          Creates a copy from the given polynomial.
 
Method Summary
 void add(Poly4MultiLinear whom)
          calculate this += whom as polynomial addition
 void add(Poly4MultiLinear a, Poly4MultiLinear 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.
 void divFactor(int factor)
          divides all coefficients by the given factor in F_4.
 int giveVarNum()
          returns the number of variables for that object
 void initMem()
          Allocates new memory for the coefficients.
 boolean isEqual(Poly4MultiLinear 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 mulAdd(int factor, Poly4MultiLinear whom)
          this += factor*whom.
 void mulFactor(int factor)
          multiplies all coefficients by the given factor in F_4.
 void setCoeffs(int[] inArray)
          Sets all the coefficients by the given array.
 void setZero()
          Sets all the coefficients to zero
 void sub(Poly4MultiLinear whom)
          calculate this -= whom as polynomial subtraction
 void sub(Poly4MultiLinear a, Poly4MultiLinear 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

Poly4MultiLinear

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

Poly4MultiLinear

public Poly4MultiLinear(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

Poly4MultiLinear

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

Poly4MultiLinear

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

Poly4MultiLinear

public Poly4MultiLinear(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(Poly4MultiLinear 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)

mulFactor

public void mulFactor(int factor)
multiplies all coefficients by the given factor in F_4.

divFactor

public void divFactor(int factor)
divides all coefficients by the given factor in F_4.

mulAdd

public void mulAdd(int factor,
                   Poly4MultiLinear whom)
this += factor*whom. Multiplies whom with the scalar factor and adds the result to this.

add

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

add

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

sub

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

sub

public void sub(Poly4MultiLinear 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.