|
realroot_doc 0.1.1
|
Go to the source code of this file.
| static void v0restrict | ( | real_t * | rs, |
| bernstein::eenv * | em, | ||
| const real_t & | l | ||
| ) | [static] |
Definition at line 7 of file bernstein_eenv_vrestrict.hpp.
Referenced by v0restrict(), and vrestrict().
{
int k,i,j;
real_t * ri, * rip;
// std::copy(ms,ms+em->data_size(),rs);
for ( k = em->m_szs[0]-1; k >= 0; k-- )
{
for ( i = 0; i < k; i ++ )
{
ri = rs + i*em->m_str[0];
rip = ri + em->m_str[0];
for ( j = 0; j < em->m_str[0]; j ++ )
ri[j] = (1.0-l)*ri[j]+l*rip[j];
};
};
};
| static void v0restrict | ( | real_t * | rs, |
| real_t * | ms, | ||
| bernstein::eenv * | em, | ||
| const real_t & | l | ||
| ) | [static] |
Definition at line 25 of file bernstein_eenv_vrestrict.hpp.
References mmx::sparse::copy(), and v0restrict().
{
int k,i,j;
real_t * ri, * rip;
std::copy(ms,ms+em->data_size(),rs);
v0restrict( rs, em, l );
};
| static void vrestrict | ( | bernstein::eenv * | oenv, |
| bernstein::eenv * | ienv, | ||
| X *& | dst, | ||
| real_t * | src, | ||
| sz_t | v, | ||
| const X & | prm | ||
| ) | [static] |
Definition at line 34 of file bernstein_eenv_vrestrict.hpp.
References mmx::sparse::copy(), oaddress(), mmx::sparse::swap(), and v0restrict().
{
sz_t nvr = ienv->m_nvr-1;
sz_t c = 0;
sz_t vrs[ienv->m_nvr];
sz_t szs[ienv->m_nvr];
std::copy(ienv->m_vrs,ienv->m_vrs + ienv->m_nvr, vrs );
std::copy(ienv->m_szs,ienv->m_szs + ienv->m_nvr, szs );
std::swap(vrs[v],vrs[0]);
std::swap(szs[v],szs[0]);
bernstein::eenv veenv( ienv->m_nvr, szs, vrs );
unsigned * addr = new unsigned[ ienv->data_size() ];
oaddress( &veenv, addr, ienv, 0, 0 );
X * tmp = new X[ienv->data_size()];
for ( unsigned c = 0; c < ienv->data_size(); tmp[addr[c]] = src[c], c ++ );
delete[] addr;
v0restrict(tmp,&veenv,prm);
oenv->~eenv();
new(oenv) bernstein::eenv( ienv->m_nvr-1, szs+1, vrs+1 );
dst = new X[oenv->data_size()];
std::copy( tmp, tmp + oenv->data_size(), dst );
};