int main() { double b=25.0; double a=0.0; a=getSqrt(b); printf("\n"); printf("**************************\n"); printf("I am demo d of MPIG0024:\na is %.lf, b is %.lf\n",a,b); printf("**************************\n"); printf("\n"); return 0; }
int main() { double b=25.0; double a=0.0; a = getSqrt(b); printf("\n"); printf("**************************\n"); printf("Testing sqrt lib:\n a is %.lf, b is %.lf\n\n", a, b); sayHello(); printf("**************************\n"); printf("\n"); return 0; }
// some test cases main() { printf("%f\n", getSqrt(1)); printf("%f\n", getSqrt(2)); printf("%f\n", getSqrt(3)); printf("%f\n", getSqrt(5)); printf("%f\n", getSqrt(10)); printf("%f\n", getSqrt(100)); }
/* * n o r m a l i s e C o n s t r a i n t s */ returnValue normaliseConstraints( int_t nV, int_t nC, real_t* A, real_t* lbA, real_t* ubA, int_t type ) { int_t ii, jj; real_t curNorm; if ( ( nV <= 0 ) || ( nC <= 0 ) || ( A == 0 ) ) return THROWERROR( RET_INVALID_ARGUMENTS ); for( ii=0; ii<nC; ++ii ) { /* get row norm */ curNorm = getNorm( &(A[ii*nV]),nV,type ); if ( curNorm > EPS ) { /* normalise if norm is positive */ for( jj=0; jj<nV; ++jj ) A[ii*nV + jj] /= curNorm; if ( lbA != 0 ) lbA[ii] /= curNorm; if ( ubA != 0 ) ubA[ii] /= curNorm; } else { /* if row norm is (close to) zero, kind of erase constraint */ if ( type == 1 ) { for( jj=0; jj<nV; ++jj ) A[ii*nV + jj] = 1.0 / ((real_t)nV); } else { /* assume type == 2 */ for( jj=0; jj<nV; ++jj ) A[ii*nV + jj] = 1.0 / getSqrt((real_t)nV); } if ( lbA != 0 ) lbA[ii] = -INFTY; if ( ubA != 0 ) ubA[ii] = INFTY; } } return SUCCESSFUL_RETURN; }
extern "C" void spotrf_( const char *uplo, const unsigned long *_n, float *a, const unsigned long *_lda, long *info ) { float sum; long i, j, k; long n = (long)(*_n); long lda = (long)(*_lda); for( i=0; i<n; ++i ) { /* j == i */ sum = a[i + lda*i]; for( k=(i-1); k>=0; --k ) sum -= a[k+lda*i] * a[k+lda*i]; if ( sum > 0.0 ) a[i+lda*i] = (float)(REFER_NAMESPACE_QPOASES getSqrt( sum )); else { a[0] = sum; /* tunnel negative diagonal element to caller */ if (info != 0) *info = (long)i+1; return; } for( j=(i+1); j<n; ++j ) { sum = a[j*lda + i]; for( k=(i-1); k>=0; --k ) sum -= a[k+lda*i] * a[k+lda*j]; a[i+lda*j] = sum / a[i+lda*i]; } } if (info != 0) *info = 0; }
/* * g e t N o r m */ real_t getNorm( const real_t* const v, int_t n, int_t type ) { int_t i; real_t norm = 0.0; switch ( type ) { case 2: for( i=0; i<n; ++i ) norm += v[i]*v[i]; return getSqrt( norm ); case 1: for( i=0; i<n; ++i ) norm += getAbs( v[i] ); return norm; default: THROWERROR( RET_INVALID_ARGUMENTS ); return -INFTY; } }