41 template<
unsigned int Precision>
46 template<
unsigned int Precision>
53 template<
unsigned int Precision>
58 template<
unsigned int Precision>
63 template<
unsigned int Precision>
70 template<
unsigned int Precision>
112 template<
unsigned int Precision>
131 tau.setbounds(0, minmn-1);
133 for(i=0; i<=k-1; i++)
140 reflections::generatereflection<Precision>(t, n-
i, tmp);
142 ap::vmove(a.getrow(i, i, n-1), t.getvector(1, n-i));
150 reflections::applyreflectionfromtheright<Precision>(a,
tau(i), t, i+1, m-1,
i, n-1, work);
176 template<
unsigned int Precision>
193 if( m<=0 || n<=0 || qrows<=0 )
203 q.setbounds(0, qrows-1, 0, n-1);
206 for(i=0; i<=qrows-1; i++)
208 for(j=0; j<=n-1; j++)
224 for(i=k-1; i>=0; i--)
232 reflections::applyreflectionfromtheright<Precision>(q,
tau(i),
v, 0, qrows-1,
i, n-1, work);
252 template<
unsigned int Precision>
266 l.setbounds(0, m-1, 0, n-1);
267 for(i=0; i<=n-1; i++)
271 for(i=1; i<=m-1; i++)
273 ap::vmove(
l.getrow(i, 0, n-1),
l.getrow(0, 0, n-1));
275 for(i=0; i<=m-1; i++)
278 ap::vmove(
l.getrow(i, 0, k), a.getrow(i, 0, k));
287 template<
unsigned int Precision>
307 tau.setbounds(1, minmn);
321 reflections::generatereflection<Precision>(t, nmip1, tmp);
323 ap::vmove(a.getrow(i, i, n), t.getvector(1, nmip1));
331 reflections::applyreflectionfromtheright<Precision>(a,
tau(i), t, i+1,
m,
i, n, work);
341 template<
unsigned int Precision>
359 if( m==0 || n==0 || qrows==0 )
369 q.setbounds(1, qrows, 1, n);
372 for(i=1; i<=qrows; i++)
399 reflections::applyreflectionfromtheright<Precision>(q,
tau(i),
v, 1, qrows,
i, n, work);
407 template<
unsigned int Precision>
423 q.setbounds(1, n, 1, n);
424 l.setbounds(1, m, 1, n);
429 lqdecomposition<Precision>(a,
m, n,
tau);
452 unpackqfromlq<Precision>(a,
m, n,
tau, n, q);
void rmatrixlqunpackq(const ap::template_2d_array< amp::ampf< Precision > > &a, int m, int n, const ap::template_1d_array< amp::ampf< Precision > > &tau, int qrows, ap::template_2d_array< amp::ampf< Precision > > &q)
static void make_assertion(bool bClause)
void tau(int **points, int sizePoints, int k)
int minint(int m1, int m2)
void rmatrixlq(ap::template_2d_array< amp::ampf< Precision > > &a, int m, int n, ap::template_1d_array< amp::ampf< Precision > > &tau)
void lqdecompositionunpacked(ap::template_2d_array< amp::ampf< Precision > > a, int m, int n, ap::template_2d_array< amp::ampf< Precision > > &l, ap::template_2d_array< amp::ampf< Precision > > &q)
int maxint(int m1, int m2)
void setbounds(int iLow, int iHigh)
const Variable & v
< [in] a sqrfree bivariate poly
raw_vector< T > getvector(int iStart, int iEnd)
void lqdecomposition(ap::template_2d_array< amp::ampf< Precision > > &a, int m, int n, ap::template_1d_array< amp::ampf< Precision > > &tau)
void rmatrixlqunpackl(const ap::template_2d_array< amp::ampf< Precision > > &a, int m, int n, ap::template_2d_array< amp::ampf< Precision > > &l)
void vmove(raw_vector< T > vdst, const_raw_vector< T > vsrc)
void unpackqfromlq(const ap::template_2d_array< amp::ampf< Precision > > &a, int m, int n, const ap::template_1d_array< amp::ampf< Precision > > &tau, int qrows, ap::template_2d_array< amp::ampf< Precision > > &q)