6 template<
class real_t >
7 static void v0restrict( real_t * rs,
bernstein::eenv * em,
const real_t& l )
12 for ( k = em->m_szs[0]-1; k >= 0; k-- )
14 for ( i = 0; i < k; i ++ )
16 ri = rs + i*em->m_str[0];
17 rip = ri + em->m_str[0];
18 for ( j = 0; j < em->m_str[0]; j ++ )
19 ri[j] = (1.0-l)*ri[j]+l*rip[j];
24 template<
class real_t >
25 static void v0restrict( real_t * rs, real_t * ms,
bernstein::eenv * em,
const real_t& l )
30 v0restrict( rs, em, l );
33 template<
class X,
class real_t >
35 X *& dst, real_t * src, sz_t v,
const X& prm )
37 sz_t nvr = ienv->m_nvr-1;
39 sz_t vrs[ienv->m_nvr];
40 sz_t szs[ienv->m_nvr];
41 std::copy(ienv->m_vrs,ienv->m_vrs + ienv->m_nvr, vrs );
42 std::copy(ienv->m_szs,ienv->m_szs + ienv->m_nvr, szs );
46 unsigned * addr =
new unsigned[ ienv->data_size() ];
47 oaddress( &veenv, addr, ienv, 0, 0 );
48 X * tmp =
new X[ienv->data_size()];
49 for (
unsigned c = 0; c < ienv->data_size(); tmp[addr[
c]] = src[
c], c ++ );
51 v0restrict(tmp,&veenv,prm);
54 dst =
new X[oenv->data_size()];
55 std::copy( tmp, tmp + oenv->data_size(), dst );
TMPL X
Definition: polynomial_operators.hpp:148
MP swap(const MP &P, int var_i, int var_j)
Definition: sparse_monomials.hpp:988
tensor::eenv eenv
Definition: tensor_convert.hpp:12
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