Example #1
0
File: main.c Project: sheab/cs137
int main (void)
{
  struct poly *p0 = polySetCoefficient (polySetCoefficient (polySetCoefficient (
                                      polyCreate() , 0, 4.0), 1, -1.0), 10, 2.0);
  struct poly *p1 = polyCopy (p0);
  struct poly *p2, *p3, *p4;

  printf ("%g\n", polyGetCoefficient (p0, 10));
  printf ("%g\n", polyGetCoefficient (p0, 100));
  printf ("%d\n", polyDegree (p0));
  polyPrint (p0);
  polyPrint (p1);
  polySetCoefficient (p1, 2, 1.0/2.0);
  polyPrint (p1);
  p2 = polyAdd (p0, p1);
  polyPrint (p2);
  p3 = polyMultiply (p0, p1);
  polyPrint (p3);
  p4 = polyPrime (p0);
  polyPrint (p4);
  printf ("%g\n", polyEval (p0, 0.0));
  printf ("%g\n", polyEval (p0, 1.0));
  printf ("%g\n", polyEval (p0, 2.0));
  p0 = polyDelete (p0);
  p1 = polyDelete (p1);
  p2 = polyDelete (p2);
  p3 = polyDelete (p3);
  p4 = polyDelete (p4);

  return 0;
}
Example #2
0
int main(int argc, char const *argv[]){
        int i,a,b;
        int tmp;
        Poly li, lp, mulp, sump;
        li = newPoly();
        lp = newPoly();

        if ( NULL == li || NULL == lp)
                return 1;
        li->exp = 0;
        lp->exp = 0;

        srand( time(NULL) );
	for(i = 0 ; i< LSIZE; i++){
                a = rand()/(RAND_MAX/LSIZE);
                b = rand()/(RAND_MAX/LSIZE);
                addItem( a, b, li);
                addItem( b, a, lp);
	}

        //removeDup( li);
        //removeDup( lp);

        printPoly( li );
        printPoly( lp );

        mulp = polyMultiply2( li, lp);
        printf("\nmultiply : " );
        printPoly( mulp );
        deletePoly( mulp);

        sump = polyAdd( li, lp);
        printf("\nadd : " );
        printPoly( sump );
        deletePoly( sump );

        printf("\n li ^2: ");
        printPoly( polyExp(li,2) );

        //swapNext( first(li), li );
        deletePoly( li );
        deletePoly( lp );

	return 0;
}
int main(int argc,char *argv[])
{
	int i,N=atoi(argv[1]);
	double x=atof(argv[2]);
	poly_t p,y;

	p=polyAdd(polyTerm(1,1),polyTerm(1,0));

	for(y=p,i=1;i<N;i++){
		y=polyMult(p,y);
	}

	puts("binomial coefficients:");
	polyShow(y);
	putchar('\n');
	putchar('\n');
	printf("(%.3f+1)^%d: %.3f\n",x,N,polyEval(y,x));

	return(0);
}
Example #4
0
void main() {
	term a, b, sum;
	printf(" Enter 1st polynomial in form <coeff deg>: \n");
	polyRead(&a);
	printf("\n Enter 2nd polynomial in form <coeff deg>: \n");
	polyRead(&b);
	
	polyAdd(&a, &b, &sum);
	
	printf("\n");
	polyDisplay(&a);
	printf("  +  ");
	polyDisplay(&b);
	printf("\n = ");
	polyDisplay(&sum);
	printf("\n\n");
	
	polyFree(&a);
	polyFree(&b);
	polyFree(&sum);
}
Example #5
0
void lagrange(byte table[], byte result[], int d) {
  int i, j, k;
  byte polyDeg1[2];
  polyDeg1[1] = 0x1;
  for(i = 0; i <= d; i++)
    result[i] = 0;
  for(i = 0; i <= d; i++) {
    byte a = 1;
    byte lagrangePoly[d+1], tmpPoly[d+1];
#ifdef DEBUG_LAGRANGE
    printf("i = %d (d = %d)\n", i, d);
#endif
    lagrangePoly[0] = 0x1;
    for(j = 1; j < d+1; j++) {
      lagrangePoly[j] = 0;
    }
#ifdef DEBUG_LAGRANGE
    printf("\tLagrange poly = ");
    for(j = 0; j < d+1; j++) {
      if(lagrangePoly[j]) {
	printf("%#2.2x * X^%d + ", lagrangePoly[j], j);
      }
    }
    printf("\b\b  \n");
#endif
    for(j = 0; j <= d; j++) { 
      if(i != j) {
	polyDeg1[0] = j;
#ifdef DEBUG_LAGRANGE
	printf("\tj = %d\n", j);
	printf("\t\tpolyDeg1 = ");
	for(k = 0; k < 2; k++) {
	  if(polyDeg1[k]) {
	    printf("%#2.2x * X^%d + ", polyDeg1[k], k);
	  }
	}
	printf("\b\b  \n");
#endif
 	a = mult(i ^ j, a);
 	polyProduct(lagrangePoly, polyDeg1, tmpPoly, d+1);
	for(k = 0; k < d+1; k++) {
	  lagrangePoly[k] = tmpPoly[k];
	}
#ifdef DEBUG_LAGRANGE
	printf("\t\ta = %#2.2x\n", a);
	printf("\t\tlagrangePoly = ");
	for(k = 0; k < 2; k++) {
	  if(lagrangePoly[k]) {
	    printf("%#2.2x * X^%d + ", lagrangePoly[k], k);
	    isZero = 0;
	  }
	}
	if(isZero) printf("0\n");
	else printf("\b\b\b  \n");
#endif
      }
    }
    a = inverse(a);
    a = mult(table[i], a);
    polyScalMult(lagrangePoly, a, d);
    polyAdd(lagrangePoly, result, result, d);
  }
}