Lines Matching refs:n

161 sal_uInt16 TriDiagGS(sal_Bool rep, sal_uInt16 n, double* lower,  in TriDiagGS()  argument
247 if ( n < 2 ) return(1); /* n mindestens 2 */ in TriDiagGS()
253 for (i = 1; i < n; i++) in TriDiagGS()
261 if ( fabs(diag[n-1]) < MACH_EPS ) return(2); in TriDiagGS()
263 for (i = 1; i < n; i++) /* Vorwaertselimination */ in TriDiagGS()
266 b[n-1] /= diag[n-1]; /* Rueckwaertselimination */ in TriDiagGS()
267 for (j = n-2; j >= 0; j--) { in TriDiagGS()
293 sal_uInt16 ZyklTriDiagGS(sal_Bool rep, sal_uInt16 n, double* lower, double* diag, in ZyklTriDiagGS() argument
379 if ( n < 3 ) return(1); in ZyklTriDiagGS()
383 lower[0] = upper[n-1] = 0.0; /* Matrix berechnen. */ in ZyklTriDiagGS()
391 for (i = 1; i < n-2; i++) in ZyklTriDiagGS()
399 diag[n-2] -= lower[n-2] * upper[n-3]; in ZyklTriDiagGS()
400 if ( fabs(diag[n-2]) < MACH_EPS ) return(2); in ZyklTriDiagGS()
402 for (i = 1; i < n-2; i++) in ZyklTriDiagGS()
405 lower[n-1] -= lowrow[n-3] * upper[n-3]; in ZyklTriDiagGS()
406 upper[n-2] = ( upper[n-2] - lower[n-2] * ricol[n-3] ) / diag[n-2]; in ZyklTriDiagGS()
408 for (temp = 0.0, i = 0; i < n-2; i++) in ZyklTriDiagGS()
410 diag[n-1] += temp - lower[n-1] * upper[n-2]; in ZyklTriDiagGS()
412 if ( fabs(diag[n-1]) < MACH_EPS ) return(2); in ZyklTriDiagGS()
416 for (i = 1; i < n-1; i++) in ZyklTriDiagGS()
419 for (temp = 0.0, i = 0; i < n-2; i++) in ZyklTriDiagGS()
422 b[n-1] = ( b[n-1] + temp - lower[n-1] * b[n-2] ) / diag[n-1]; in ZyklTriDiagGS()
424 b[n-2] -= b[n-1] * upper[n-2]; /* Rueckwaertselimination */ in ZyklTriDiagGS()
425 for (j = n-3; j >= 0; j--) { in ZyklTriDiagGS()
427 b[i] -= upper[i] * b[i+1] + ricol[i] * b[n-1]; in ZyklTriDiagGS()
449 sal_uInt16 NaturalSpline(sal_uInt16 n, double* x, double* y, in NaturalSpline() argument
459 if (n<2) return 1; in NaturalSpline()
461 a=new double[n+1]; in NaturalSpline()
462 h=new double[n+1]; in NaturalSpline()
463 for (i=0;i<n;i++) { in NaturalSpline()
467 for (i=0;i<n-1;i++) { in NaturalSpline()
475 if (n==2) { in NaturalSpline()
480 a[n-2]=a[n-2]*h[n-2]/(h[n-1]+h[n-2]); in NaturalSpline()
482 d[n-2]=d[n-2]-h[n-1]; in NaturalSpline()
484 b[n-2]=b[n-2]-h[n-1]; in NaturalSpline()
489 a[n-2]=a[n-2]-1.5*(MargN-(y[n]-y[n-1])/h[n-1]); in NaturalSpline()
491 d[n-2]=d[n-2]-h[n-1]*0.5; in NaturalSpline()
495 a[n-2]=a[n-2]-h[n-1]*MargN*0.5; in NaturalSpline()
499 a[n-2]=a[n-2]-MargN*h[n-1]*h[n-1]*0.5; in NaturalSpline()
501 d[n-2]=d[n-2]+h[n-1]; in NaturalSpline()
504 if (n==2) { in NaturalSpline()
507 error=TriDiagGS(sal_False,n-1,b,d,c,a); in NaturalSpline()
509 for (i=0;i<n-1;i++) c[i+1]=a[i]; in NaturalSpline()
513 if (n==2) { in NaturalSpline()
518 c[n]=c[n-1]+h[n-1]*(c[n-1]-c[n-2])/h[n-2]; in NaturalSpline()
524 c[n]=1.5*((y[n]-y[n-1])/h[n-1]-MargN); in NaturalSpline()
525 c[n]=(c[n]-c[n-1]*h[n-1]*0.5)/h[n-1]; in NaturalSpline()
529 c[n]=MargN*0.5; in NaturalSpline()
533 c[n]=c[n-1]+MargN*h[n-1]*0.5; in NaturalSpline()
536 for (i=0;i<n;i++) { in NaturalSpline()
558 sal_uInt16 PeriodicSpline(sal_uInt16 n, double* x, double* y, in PeriodicSpline() argument
568 if (n<2) return 4; in PeriodicSpline()
569 nm1=n-1; in PeriodicSpline()
571 if (y[n]!=y[0]) return 3; // Anfang muss gleich Ende sein! in PeriodicSpline()
573 a =new double[n+1]; in PeriodicSpline()
574 lowrow=new double[n+1]; in PeriodicSpline()
575 ricol =new double[n+1]; in PeriodicSpline()
577 if (n==2) { in PeriodicSpline()
592 hl=x[n]-x[nm1]; in PeriodicSpline()
598 a[nm1]=3.0*((y[1]-y[0])/hr-(y[n]-y[nm1])/hl); in PeriodicSpline()
599 Error=ZyklTriDiagGS(sal_False,n,b,d,c,lowrow,ricol,a); in PeriodicSpline()
609 c[0]=c[n]; in PeriodicSpline()
636 sal_uInt16 ParaSpline(sal_uInt16 n, double* x, double* y, sal_uInt8 MargCond, in ParaSpline() argument
649 if (n<2) return 1; in ParaSpline()
653 for (i=0;i<n;i++) { in ParaSpline()
668 if (x[n]!=x[0]) return 3; in ParaSpline()
669 if (y[n]!=y[0]) return 4; in ParaSpline()
682 betY=sign(1.0,y[n]-y[n-1]); in ParaSpline()
684 betX=sign(sqrt(1.0/(1.0+MargN1*MargN1)),x[n]-x[n-1]); in ParaSpline()
690 Error=PeriodicSpline(n,T,x,bx,cx,dx); in ParaSpline()
692 Error=PeriodicSpline(n,T,y,by,cy,dy); in ParaSpline()
695 Error=NaturalSpline(n,T,x,alphX,betX,MargCond,bx,cx,dx); in ParaSpline()
697 Error=NaturalSpline(n,T,y,alphY,betY,MargCond,by,cy,dy); in ParaSpline()
724 sal_Bool CalcSpline(Polygon& rPoly, sal_Bool Periodic, sal_uInt16& n, in CalcSpline() argument
735 n=rPoly.GetSize(); in CalcSpline()
739 n=0; in CalcSpline()
743 ax[n]=Pt.X(); in CalcSpline()
744 ay[n]=Pt.Y(); in CalcSpline()
745 n++; in CalcSpline()
752 ax[n]=ax[0]; in CalcSpline()
753 ay[n]=ay[0]; in CalcSpline()
754 n++; in CalcSpline()
759 bx=new double[n+1]; in CalcSpline()
760 by=new double[n+1]; in CalcSpline()
761 cx=new double[n+1]; in CalcSpline()
762 cy=new double[n+1]; in CalcSpline()
763 dx=new double[n+1]; in CalcSpline()
764 dy=new double[n+1]; in CalcSpline()
765 T =new double[n+1]; in CalcSpline()
771 if (n>0) n--; // n Korregieren (Anzahl der Teilpolynome) in CalcSpline()
774 if ( ( Marg == 3 && n >= 3 ) || ( Marg == 2 && n >= 2 ) ) in CalcSpline()
776 bRet = ParaSpline(n,ax,ay,Marg,Marg01,Marg01,MargN1,MargN2,sal_False,T,bx,cx,dx,by,cy,dy) == 0; in CalcSpline()
789 n=0; in CalcSpline()
831 sal_uInt16 n; // Anzahl der zu zeichnenden Teilpolynome in Spline2Poly() local
837 bOk=CalcSpline(rSpln,Periodic,n,ax,ay,bx,by,cx,cy,dx,dy,tv); in Spline2Poly()
844 while (i<n) { // n Teilpolynome malen in Spline2Poly()