6 #ifndef realroot_SOLVE_SBDSLV_LINEAR_GRAMSCHMIDT_HPP
7 #define realroot_SOLVE_SBDSLV_LINEAR_GRAMSCHMIDT_HPP
16 template<
typename real_t>
21 for ( i = 0; i < m; i ++ )
24 for ( k = 0; k < n; k ++ )
25 s += M[i*n+k]*M[i*n+k];
27 for ( j = i+1; j < m; j ++ )
30 for ( k = 0; k < n; k ++ )
31 d += M[i*n+k]*M[j*n+k];
33 for ( k = 0; k < n; k ++ )
34 M[j*n+k] -= d*M[i*n+k];
44 template<
typename real_t>
45 void library( real_t * M,
unsigned n, real_t * v )
56 for ( i = 0; i < n; i ++ )
59 for ( k = 0; k < n; s += M[i*n+k]*M[i*n+k], k ++ ) ;
62 for ( j = i+1; j < n; j ++ )
65 for ( k = 0; k < n; k ++ )
66 d += M[i*n+k]*M[j*n+k];
68 for ( k = 0; k < n; k ++ )
69 M[j*n+k] -= d*M[i*n+k];
75 while( k < c && goods[k] == k ) k ++;
78 std::copy( M + goods[k]*n, M + (goods[k]+1)*n,
91 for ( i = c; i < n; i ++ )
92 for ( k = 0; k < n; k ++ )
93 M[i*n+k] = ((real_t)rand())/((real_t)RAND_MAX);
96 for ( i = c; i < n; i ++ )
98 for ( p = i-1; p >= 0; p-- )
102 for ( k = 0; k < n; k ++ )
103 d += M[p*n+k]*M[i*n+k];
105 for ( k = 0; k < n; k ++ )
108 M[i*n+k] -= d*M[p*n+k];
113 for ( k = 0; k < n; k ++ )
114 s += M[i*n+k]*M[i*n+k];
Definition: system_epsilon.hpp:19
void library(real_t *M, unsigned n, real_t *v)
Definition: linear_gramschmidt.hpp:45
bool gramschmidt(real_t *M, unsigned m, unsigned n)
Definition: linear_gramschmidt.hpp:17
TMPL void copy(Polynomial &r, const Polynomial &a)
Copy of a in r.
Definition: sparse_monomials.hpp:613
const C & c
Definition: Interval_glue.hpp:45
#define assert(expr, msg)
Definition: shared_object.hpp:57