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);
  }
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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"));
}
Exemplo n.º 6
0
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);
}
Exemplo n.º 7
0
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);
}
Exemplo n.º 8
0
  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;
  }
Exemplo n.º 9
0
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);
}
Exemplo n.º 10
0
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();
    }
}
Exemplo n.º 11
0
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);
}
Exemplo n.º 12
0
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);
}
Exemplo n.º 13
0
  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 );
  }
Exemplo n.º 14
0
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++;
	}
}