void HighPrecisionComplexPolynom::ini(const HighPrecisionComplexPolynom& pol) { ini(pol.length, pol.DIGIT); for (int I=0; I<pol.length; I++) { cln::cl_N c = pol.coeff[I]; setCoeff(I, c); } }
void Filter_BW_BP_6::calcCoeff() { smp_t wc=2*M_PI*cutoff/srate; smp_t B = wc/q; smp_t wu = B/2.0 + sqrt(B*B/4.0+wc*wc); smp_t wl = wu-B; smp_t w0 = sqrt(wu*wl); smp_t B0= wu-wl; smp_t k=tan(w0/2); smp_t k2=k*k; smp_t b=tan(B0/2); X[0] = b; X[1] = 0; X[2] = -b; Y[0] = 1+k2+b; Y[1] = -2+2*k2; Y[2] = 1+k2-b; setCoeff(X, Y); }
void Filter_BW_BP_12::calcCoeff() { smp_t wc=2*M_PI*cutoff/srate; smp_t B = wc/q; smp_t wu = B/2.0 + sqrt(B*B/4.0+wc*wc); smp_t wl = wu-B; smp_t w0 = sqrt(wu*wl); smp_t B0= wu-wl; smp_t k=tan(w0/2); smp_t k2=k*k; smp_t k4=k2*k2; smp_t b=tan(B0/2); smp_t b2=b*b; smp_t sqb = sqrt(2.0)*b; X[0] = b2; X[1] = 0; X[2] = -2*b2; X[3] = 0; X[4] = b2; Y[0] = 1+sqb+2*k2+b2+sqb*k2+k4; Y[1] = -4-2*sqb+2*sqb*k2+4*k4; Y[2] = 6-4*k2-2*b2+6*k4; Y[3] = 2*sqb-4-2*sqb*k2+4*k4; Y[4] = 1-sqb+2*k2+b2+k4-sqb*k2; setCoeff(X, Y); }
void Filter_BW_HP_6::calcCoeff() { smp_t k=tan(M_PI*cutoff/srate); X[0]=1/(1+k); X[1]=-X[0]; Y[0]=1.0; Y[1]=((k-1)/(1+k)); setCoeff(X, Y); }
void GlossyMaterial::loadMaterialFromXML(const ConfigManager* cm, xml_node<>* node) { if(node->first_node("color")) setColor(readVec(node->first_node("color")->value())); if(node->first_node("coeff")) setCoeff(atof(node->first_node("coeff")->value())); if(node->first_node("ColorTexture")) colorTex.loadTextureFromXML(cm, node->first_node("ColorTexture")); if(node->first_node("CoeffTexture")) coeffTex.loadTextureFromXML(cm, node->first_node("CoeffTexture")); }
void Filter_BW_LP_6::calcCoeff() { smp_t k=tan(M_PI*cutoff/srate); X[0]=k/(1+k); X[1]=X[0]; Y[0]=1.0; Y[1]=-(1-k)/(1+k); setCoeff(X, Y); }
void Filter_BW_HP_12::calcCoeff() { smp_t k=tan(M_PI*cutoff/srate); smp_t k2=k*k; X[0] = 1; X[1] =-2; X[2] = 1; Y[0] = k2 + M_SQRT2*k + 1; Y[1] = 2*k2 - 2; Y[2] = k2 - M_SQRT2*k + 1; setCoeff(X, Y); }
void EncodedFSM::evaluate( size_t tag ) { auto lambda = _secretKeyPtr->lambda(); auto k = _secretKeyPtr->k(); // trapdoor for G auto TG = lattice::PolyRingMatrix{k, k, lambda, k}; for ( size_t i = 0; i < k; ++i ) { TG.setCoeff( i, i, 0, 2 ); if ( i < k-1 ) TG.setCoeff( i, i + 1, 0, -1 ); } auto add = _streamStates[tag]->prevToken() + _streamStates[tag]->prevToken(); auto A = _secretKeyPtr->A0(); auto randomToken = PolyRingMatrix{1, 1, lambda, k}; auto randomShit = PolyRingMatrix{k, 1, lambda, k}; randomToken.uniformInit(); randomShit.uniformInit(); auto Ay = *A * randomToken; auto TGe = TG * (randomShit - Ay); auto m = randomShit - Ay - TGe; }
void Filter_BW_LP_12::calcCoeff() { smp_t w=2*M_PI*cutoff/srate; smp_t k=tan(w/2); smp_t k2=k*k; X[0] = k2; X[1] = 2*k2; X[2] = k2; Y[0] = 1 + M_SQRT2*k + k2; Y[1] =-2 + 2*k2; Y[2] = 1 - M_SQRT2*k + k2; setCoeff(X, Y); }
void LayerThicknessVariation::setModel(LayerThicknessVariation::Model model) { if (m_model != model) { m_model = model; switch (m_model) { case Default: setCoeff(1.98); setInitial(10.86); setExponent(-0.89); break; case Custom: break; } emit modelChanged(m_model); emit customEnabledChanged(customEnabled()); emit wasModified(); } }
void Filter_BW_HP_18::calcCoeff() { smp_t w=2*M_PI*cutoff/srate; smp_t k=tan(w/2); smp_t k2=k*k; smp_t k3=k2*k; X[0]= 1; X[1]= -3; X[2]= 3; X[3]= -1; Y[0]= 1 + 2*k + 2*k2 + k3; Y[1]= -3 - 2*k + 2*k2 + 3*k3; Y[2]= 3 - 2*k - 2*k2 + 3*k3; Y[3]= -1 + 2*k - 2*k2 + k3; setCoeff(X, Y); }
void Filter_BW_LP_18::calcCoeff() { smp_t w=2*M_PI*cutoff/srate; smp_t k=tan(w/2); smp_t k2=k*k; smp_t k3=k2*k; X[0]= k3; X[1]=3*k3; X[2]=3*k3; X[3]= k3; Y[0]= k3 + 2*k2 + 2*k + 1; Y[1]=3*k3 + 2*k2 - 2*k - 3; Y[2]=3*k3 - 2*k2 - 2*k + 3; Y[3]= k3 - 2*k2 + 2*k - 1; setCoeff(X, Y); }
void Trapdoor::buildTrapdoorWithParityCheck() { // initialize A|0 and R|0 for ( size_t i = 0; i < k()*k(); ++i ) ternaryInit( i ); for ( size_t i = 0; i < k(); ++i ) _parityCheck->uniformInit( i ); // compute AR auto AR = *_parityCheck * *this; // subtract AR from G, leaving A|G-AR PolyRing gVector{degree(), k()}; for ( size_t i = 0; i < k(); ++i ) { gVector.set( 0, size_t(1) << i ); _parityCheck->setPoly( 0, k() + i, gVector - AR[i] ); } // fill in identity matrix, leaving R|I for ( size_t i = 0; i < k(); ++i ) setCoeff( k() + i, i, 0, 1 ); }
void Poly::add(Poly& p) { auto i = this->terms.begin(); auto j = p.terms.begin(); while (i != this->terms.end() && j != p.terms.end()) { if (i->getPower() < j->getPower()) { i++; } else if (i->getPower() == j->getPower()) { i->setCoeff(i->getCoeff() + j->getCoeff()); i++; j++; } else { this->terms.insert(i, *j); j++; } } while (i == this->terms.end() && j != p.terms.end()) { this->terms.push_back(*j); j++; } }