Ejemplo n.º 1
0
void strafo::initAC (void) {
  nr_double_t t1 = getPropertyDouble ("T1");
  nr_double_t t2 = getPropertyDouble ("T2");

  setVoltageSources (2);
  allocMatrixMNA ();

  setB (NODE_1, VSRC_1, -1.0); setB (NODE_2, VSRC_1, + t1);
  setB (NODE_3, VSRC_1, - t1); setB (NODE_4, VSRC_1, +0.0);
  setB (NODE_5, VSRC_1, +0.0); setB (NODE_6, VSRC_1, +1.0);
  setB (NODE_1, VSRC_2, +0.0); setB (NODE_2, VSRC_2, + t2);
  setB (NODE_3, VSRC_2, - t2); setB (NODE_4, VSRC_2, +1.0);
  setB (NODE_5, VSRC_2, -1.0); setB (NODE_6, VSRC_2, +0.0);

  setC (VSRC_1, NODE_1, +1.0); setC (VSRC_1, NODE_2, - t1);
  setC (VSRC_1, NODE_3, + t1); setC (VSRC_1, NODE_4, +0.0);
  setC (VSRC_1, NODE_5, +0.0); setC (VSRC_1, NODE_6, -1.0);
  setC (VSRC_2, NODE_1, +0.0); setC (VSRC_2, NODE_2, - t2);
  setC (VSRC_2, NODE_3, + t2); setC (VSRC_2, NODE_4, -1.0);
  setC (VSRC_2, NODE_5, +1.0); setC (VSRC_2, NODE_6, +0.0);

  setD (VSRC_1, VSRC_1, 0); setD (VSRC_2, VSRC_2, 0);
  setD (VSRC_1, VSRC_2, 0); setD (VSRC_2, VSRC_1, 0);
  setE (VSRC_1, 0.0);
  setE (VSRC_2, 0.0);
}
Ejemplo n.º 2
0
void mutual::calcTR (nr_double_t) {
    nr_double_t k  = getPropertyDouble ("k");
    nr_double_t l1 = getPropertyDouble ("L1");
    nr_double_t l2 = getPropertyDouble ("L2");
    nr_double_t i1 = real (getJ (VSRC_1));
    nr_double_t i2 = real (getJ (VSRC_2));
    nr_double_t r11, r12, r21, r22, v11, v22, v12, v21;
    nr_double_t M12 = k * sqrt (l1 * l2);

    // self inductances
    setState  (fState11, i1 * l1);
    integrate (fState11, l1, r11, v11);
    setState  (fState22, i2 * l2);
    integrate (fState22, l2, r22, v22);

    // mutual inductances
    setState  (fState12, i2 * M12);
    integrate (fState12, M12, r12, v12);
    setState  (fState21, i1 * M12);
    integrate (fState21, M12, r21, v21);

    setD (VSRC_1, VSRC_1, -r11);
    setD (VSRC_1, VSRC_2, -r12);
    setD (VSRC_2, VSRC_2, -r22);
    setD (VSRC_2, VSRC_1, -r21);
    setE (VSRC_1, v11 + v12);
    setE (VSRC_2, v22 + v21);
}
Ejemplo n.º 3
0
void opamp::initDC (void) {
  allocMatrixMNA ();
  setB (NODE_INP, VSRC_1, 0);
  setB (NODE_OUT, VSRC_1, 1);
  setB (NODE_INM, VSRC_1, 0);
  setC (VSRC_1, NODE_OUT, -1); setD (VSRC_1, VSRC_1, 0); setE (VSRC_1, 0);
}
Ejemplo n.º 4
0
// Set from Botan representation
void BotanGOSTPrivateKey::setFromBotan(const Botan::GOST_3410_PrivateKey* inECKEY)
{
	ByteString inEC = BotanUtil::ecGroup2ByteString(inECKEY->domain());
	setEC(inEC);
	ByteString inD = BotanUtil::bigInt2ByteStringPrefix(inECKEY->private_value(), 32);
	setD(inD);
}
Ejemplo n.º 5
0
// Set from Botan representation
void BotanECDHPrivateKey::setFromBotan(const Botan::ECDH_PrivateKey* inECKEY)
{
	ByteString inEC = BotanUtil::ecGroup2ByteString(inECKEY->domain());
	setEC(inEC);
	ByteString inD = BotanUtil::bigInt2ByteString(inECKEY->private_value());
	setD(inD);
}
bool RSAPrivateKey::deserialise(ByteString& serialised)
{
	ByteString dP = ByteString::chainDeserialise(serialised);
	ByteString dQ = ByteString::chainDeserialise(serialised);
	ByteString dPQ = ByteString::chainDeserialise(serialised);
	ByteString dDP1 = ByteString::chainDeserialise(serialised);
	ByteString dDQ1 = ByteString::chainDeserialise(serialised);
	ByteString dD = ByteString::chainDeserialise(serialised);
	ByteString dN = ByteString::chainDeserialise(serialised);
	ByteString dE = ByteString::chainDeserialise(serialised);

	if ((dD.size() == 0) ||
	    (dN.size() == 0) ||
	    (dE.size() == 0))
	{
		return false;
	}

	setP(dP);
	setQ(dQ);
	setPQ(dPQ);
	setDP1(dDP1);
	setDQ1(dDQ1);
	setD(dD);
	setN(dN);
	setE(dE);

	return true;
}
Ejemplo n.º 7
0
// Set from Botan representation
void BotanECDHPrivateKey::setFromBotan(const Botan::ECDH_PrivateKey* eckey)
{
	ByteString ec = BotanUtil::ecGroup2ByteString(eckey->domain());
	setEC(ec);
	ByteString d = BotanUtil::bigInt2ByteString(eckey->private_value());
	setD(d);
}
Ejemplo n.º 8
0
Quaternion::Quaternion() :
	Vector(4)
{
	setA(1.0f);
	setB(0.0f);
	setC(0.0f);
	setD(0.0f);
}
Ejemplo n.º 9
0
void tline::initTR (void) {
  nr_double_t l = getPropertyDouble ("L");
  nr_double_t z = getPropertyDouble ("Z");
  deleteHistory ();
  if (l > 0.0) {
    setVoltageSources (2);
    allocMatrixMNA ();
    setHistory (true);
    initHistory (l / C0);
    setB (NODE_1, VSRC_1, +1); setB (NODE_2, VSRC_2, +1);
    setC (VSRC_1, NODE_1, +1); setC (VSRC_2, NODE_2, +1);
    setD (VSRC_1, VSRC_1, -z); setD (VSRC_2, VSRC_2, -z); 
  } else {
    setVoltageSources (1);
    allocMatrixMNA ();
    voltageSource (VSRC_1, NODE_1, NODE_2);
  }
}
Ejemplo n.º 10
0
Quaternion::Quaternion(float a, float b,
		       float c, float d) :
	Vector(4)
{
	setA(a);
	setB(b);
	setC(c);
	setD(d);
}
Ejemplo n.º 11
0
// Initialize computation of MNA matrix entries for HB.
void resistor::initHB (void) {
  initModel ();
  nr_double_t r = getScaledProperty ("R");
  setVoltageSources (1);
  setInternalVoltageSource (1);
  allocMatrixMNA ();
  voltageSource (VSRC_1, NODE_1, NODE_2);
  setD (VSRC_1, VSRC_1, -r);
}
Ejemplo n.º 12
0
void EllipsePosition::setDiangle(double dia) {
    #ifndef WIN32
        assert( !std::isnan(dia) );
    #else
        assert( !isnan(dia) );
    #endif
    diangle = dia;
    setD();
}
TransformationMatrix::TransformationMatrix(const CGAffineTransform& t)
{
    setA(t.a);
    setB(t.b);
    setC(t.c);
    setD(t.d);
    setE(t.tx);
    setF(t.ty);
}
Ejemplo n.º 14
0
void mutual2::calcTR (nr_double_t) {
  nr_double_t k12 = getPropertyDouble ("k12");
  nr_double_t k13 = getPropertyDouble ("k13");
  nr_double_t k23 = getPropertyDouble ("k23");
  nr_double_t l1  = getPropertyDouble ("L1");
  nr_double_t l2  = getPropertyDouble ("L2");
  nr_double_t l3  = getPropertyDouble ("L3");
  nr_double_t M12 = k12 * sqrt (l1 * l2);
  nr_double_t M13 = k13 * sqrt (l1 * l3);
  nr_double_t M23 = k23 * sqrt (l2 * l3);
  nr_double_t r11, r12, r13, r21, r22, r23, r31, r32, r33;
  nr_double_t v11, v12, v13, v21, v22, v23, v31, v32, v33;
  nr_double_t i1 = real (getJ (VSRC_1));
  nr_double_t i2 = real (getJ (VSRC_2));
  nr_double_t i3 = real (getJ (VSRC_3));

  setState  (fState11, i1 * l1);
  integrate (fState11, l1, r11, v11);
  setState  (fState22, i2 * l2);
  integrate (fState22, l2, r22, v22);
  setState  (fState33, i3 * l3);
  integrate (fState33, l3, r33, v33);

  setState  (fState12, i2 * M12);
  integrate (fState12, M12, r12, v12);
  setState  (fState13, i3 * M13);
  integrate (fState13, M13, r13, v13);
  setState  (fState21, i1 * M12);
  integrate (fState21, M12, r21, v21);
  setState  (fState23, i3 * M23);
  integrate (fState23, M23, r23, v23);
  setState  (fState31, i1 * M13);
  integrate (fState31, M13, r31, v31);
  setState  (fState32, i2 * M23);
  integrate (fState32, M23, r32, v32);

  setD (VSRC_1, VSRC_1, -r11);
  setD (VSRC_1, VSRC_2, -r12);
  setD (VSRC_1, VSRC_3, -r13);
  setD (VSRC_2, VSRC_1, -r21);
  setD (VSRC_2, VSRC_2, -r22);
  setD (VSRC_2, VSRC_3, -r23);
  setD (VSRC_3, VSRC_1, -r31);
  setD (VSRC_3, VSRC_2, -r32);
  setD (VSRC_3, VSRC_3, -r33);
  setE (VSRC_1, v11 + v12 + v13);
  setE (VSRC_2, v21 + v22 + v23);
  setE (VSRC_3, v31 + v32 + v33);
}
Ejemplo n.º 15
0
void dcfeed::calcTR (nr_double_t) {
  nr_double_t l = getPropertyDouble ("L");
  nr_double_t r, v;
  nr_double_t i = real (getJ (VSRC_1));

  setState (fState, i * l);
  integrate (fState, l, r, v);
  setD (VSRC_1, VSRC_1, -r);
  setE (VSRC_1, v);
}
Ejemplo n.º 16
0
void digisource::initDC (void) {
  char * init = getPropertyString ("init");
  nr_double_t v = getPropertyDouble ("V");
  bool lo = !strcmp (init, "low");
  allocMatrixMNA ();
  setC (VSRC_1, NODE_1, 1.0);
  setB (NODE_1, VSRC_1, 1.0);
  setD (VSRC_1, VSRC_1, 0.0);
  setE (VSRC_1, lo ? 0 : v);
}
Ejemplo n.º 17
0
void vcvs::initDC (void) {
  nr_double_t g = getPropertyDouble ("G");
  allocMatrixMNA ();
  setC (VSRC_1, NODE_1, +g); setC (VSRC_1, NODE_2, -1.0);
  setC (VSRC_1, NODE_3, +1.0); setC (VSRC_1, NODE_4, -g);
  setB (NODE_1, VSRC_1, +0); setB (NODE_2, VSRC_1, -1.0);
  setB (NODE_3, VSRC_1, +1.0); setB (NODE_4, VSRC_1, +0);
  setD (VSRC_1, VSRC_1, 0.0);
  setE (VSRC_1, 0.0);
}
Ejemplo n.º 18
0
void cccs::initDC (void) {
  setISource (false);
  allocMatrixMNA ();
  nr_double_t g = getPropertyDouble ("G");
  setC (VSRC_1, NODE_1, +1.0); setC (VSRC_1, NODE_2, +0.0);
  setC (VSRC_1, NODE_3, +0.0); setC (VSRC_1, NODE_4, -1.0);
  setB (NODE_1, VSRC_1, +1/g); setB (NODE_2, VSRC_1, +1.0);
  setB (NODE_3, VSRC_1, -1.0); setB (NODE_4, VSRC_1, -1/g);
  setD (VSRC_1, VSRC_1, 0.0);
  setE (VSRC_1, 0.0);
}
Ejemplo n.º 19
0
Quaternion::Quaternion(const Dcm &dcm) :
	Vector(4)
{
	setA(0.5f * sqrtf(1 + dcm(0, 0) +
			  dcm(1, 1) + dcm(2, 2)));
	setB((dcm(2, 1) - dcm(1, 2)) /
	     (4 * getA()));
	setC((dcm(0, 2) - dcm(2, 0)) /
	     (4 * getA()));
	setD((dcm(1, 0) - dcm(0, 1)) /
	     (4 * getA()));
}
Ejemplo n.º 20
0
void circulator::initDC (void) {
  nr_double_t z1 = getPropertyDouble ("Z1");
  nr_double_t z2 = getPropertyDouble ("Z2");
  nr_double_t z3 = getPropertyDouble ("Z3");
  nr_double_t r1 = (z0 - z1) / (z0 + z1);
  nr_double_t r2 = (z0 - z2) / (z0 + z2);
  nr_double_t r3 = (z0 - z3) / (z0 + z3);
  nr_double_t d  = 1 - r1 * r2 * r3;

  nr_double_t s11 = (r2 * r3 - r1) / d;
  nr_double_t s22 = (r1 * r3 - r2) / d;
  nr_double_t s33 = (r1 * r2 - r3) / d;
  nr_double_t s12 = sqrt (z2/z1) * (z1+z0) / (z2+z0) * r3 * (1-r1*r1) / d;
  nr_double_t s23 = sqrt (z3/z2) * (z2+z0) / (z3+z0) * r1 * (1-r2*r2) / d;
  nr_double_t s31 = sqrt (z1/z3) * (z3+z0) / (z1+z0) * r2 * (1-r3*r3) / d;
  nr_double_t s21 = sqrt (z1/z2) * (z2+z0) / (z1+z0) * (1-r2*r2) / d;
  nr_double_t s13 = sqrt (z3/z1) * (z1+z0) / (z3+z0) * (1-r1*r1) / d;
  nr_double_t s32 = sqrt (z2/z3) * (z3+z0) / (z2+z0) * (1-r3*r3) / d;

  allocMatrixMNA ();

  setB (NODE_1, VSRC_1, +1.0); setB (NODE_1, VSRC_2, +0.0);
  setB (NODE_1, VSRC_3, +0.0);
  setB (NODE_2, VSRC_1, +0.0); setB (NODE_2, VSRC_2, +1.0);
  setB (NODE_2, VSRC_3, +0.0);
  setB (NODE_3, VSRC_1, +0.0); setB (NODE_3, VSRC_2, +0.0);
  setB (NODE_3, VSRC_3, +1.0);

  setC (VSRC_1, NODE_1, s11 - 1.0); setC (VSRC_1, NODE_2, s12);
  setC (VSRC_1, NODE_3, s13);
  setC (VSRC_2, NODE_1, s21); setC (VSRC_2, NODE_2, s22 - 1.0);
  setC (VSRC_2, NODE_3, s23);
  setC (VSRC_3, NODE_1, s31); setC (VSRC_3, NODE_2, s32);
  setC (VSRC_3, NODE_3, s33 - 1.0);

  setD (VSRC_1, VSRC_1, z0 * (s11 + 1.0)); setD (VSRC_1, VSRC_2, z0 * s12);
  setD (VSRC_1, VSRC_3, z0 * s13);
  setD (VSRC_2, VSRC_1, z0 * s21); setD (VSRC_2, VSRC_2, z0 * (s22 + 1.0));
  setD (VSRC_2, VSRC_3, z0 * s23);
  setD (VSRC_3, VSRC_1, z0 * s31); setD (VSRC_3, VSRC_2, z0 * s32);
  setD (VSRC_3, VSRC_3, z0 * (s33 + 1.0));

  setE (VSRC_1, +0.0); setE (VSRC_2, +0.0); setE (VSRC_3, +0.0);
}
Ejemplo n.º 21
0
// Set from OpenSSL representation
void OSSLGOSTPrivateKey::setFromOSSL(const EVP_PKEY* pkey)
{
	const EC_KEY* eckey = (const EC_KEY*) EVP_PKEY_get0((EVP_PKEY*) pkey);
	const BIGNUM* priv = EC_KEY_get0_private_key(eckey);
	setD(OSSL::bn2ByteString(priv));

	ByteString inEC;
	int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(eckey));
	inEC.resize(i2d_ASN1_OBJECT(OBJ_nid2obj(nid), NULL));
	unsigned char *p = &inEC[0];
	i2d_ASN1_OBJECT(OBJ_nid2obj(nid), &p);
	setEC(inEC);
}
Ejemplo n.º 22
0
bool OSSLGOSTPrivateKey::deserialise(ByteString& serialised)
{
	ByteString dD = ByteString::chainDeserialise(serialised);

	if (dD.size() == 0)
	{
		return false;
	}

	setD(dD);

	return true;
}
Ejemplo n.º 23
0
void isolator::initDC (void) {
  nr_double_t z1 = getPropertyDouble ("Z1");
  nr_double_t z2 = getPropertyDouble ("Z2");
#if AUGMENTED
  nr_double_t z21 = 2 * sqrt (z1 * z2);
  setVoltageSources (2);
  allocMatrixMNA ();
  setB (NODE_1, VSRC_1, +1.0); setB (NODE_1, VSRC_2, +0.0);
  setB (NODE_2, VSRC_1, +0.0); setB (NODE_2, VSRC_2, +1.0);
  setC (VSRC_1, NODE_1, -1.0); setC (VSRC_1, NODE_2, +0.0);
  setC (VSRC_2, NODE_1, +0.0); setC (VSRC_2, NODE_2, -1.0); 
  setD (VSRC_1, VSRC_1,  +z1); setD (VSRC_2, VSRC_2,  +z2);
  setD (VSRC_1, VSRC_2, +0.0); setD (VSRC_2, VSRC_1, +z21);
  setE (VSRC_1, +0.0); setE (VSRC_2, +0.0);
#else
  setVoltageSources (0);
  allocMatrixMNA ();
  setY (NODE_1, NODE_1, 1 / z1);
  setY (NODE_1, NODE_2, 0);
  setY (NODE_2, NODE_1, -2 / sqrt (z1 * z2));
  setY (NODE_2, NODE_2, 1 / z2);
#endif
}
Ejemplo n.º 24
0
Quaternion::Quaternion(const Dcm &dcm) :
	Vector(4)
{
	// avoiding singularities by not using
	// division equations
	setA(0.5 * sqrt(1.0 +
			double(dcm(0, 0) + dcm(1, 1) + dcm(2, 2))));
	setB(0.5 * sqrt(1.0 +
			double(dcm(0, 0) - dcm(1, 1) - dcm(2, 2))));
	setC(0.5 * sqrt(1.0 +
			double(-dcm(0, 0) + dcm(1, 1) - dcm(2, 2))));
	setD(0.5 * sqrt(1.0 +
			double(-dcm(0, 0) - dcm(1, 1) + dcm(2, 2))));
}
Ejemplo n.º 25
0
// Set from OpenSSL representation
void OSSLECPrivateKey::setFromOSSL(const EC_KEY* inECKEY)
{
	const EC_GROUP* grp = EC_KEY_get0_group(inECKEY);
	if (grp != NULL)
	{
		ByteString inEC = OSSL::grp2ByteString(grp);
		setEC(inEC);
	}
	const BIGNUM* pk = EC_KEY_get0_private_key(inECKEY);
	if (pk != NULL)
	{
		ByteString inD = OSSL::bn2ByteString(pk);
		setD(inD);
	}
}
Ejemplo n.º 26
0
 void Trapezoid::configure(const std::string& parameters) {
     if (parameters.empty()) return;
     std::vector<std::string> values = Op::split(parameters, " ");
     std::size_t required = 4;
     if (values.size() < required) {
         std::ostringstream ex;
         ex << "[configuration error] term <" << className() << ">"
                 << " requires <" << required << "> parameters";
         throw fl::Exception(ex.str(), FL_AT);
     }
     setA(Op::toScalar(values.at(0)));
     setB(Op::toScalar(values.at(1)));
     setC(Op::toScalar(values.at(2)));
     setD(Op::toScalar(values.at(3)));
 }
Ejemplo n.º 27
0
void inductor::calcTR (nr_double_t) {
  nr_double_t l = getPropertyDouble ("L");
  nr_double_t r, v;
  nr_double_t i = real (getJ (VSRC_1));

  /* apply initial condition if requested */
  if (getMode () == MODE_INIT && isPropertyGiven ("I")) {
    i = getPropertyDouble ("I");
  }

  setState (fState, i * l);
  integrate (fState, l, r, v);
  setD (VSRC_1, VSRC_1, -r);
  setE (VSRC_1, v);
}
bool BotanGOSTPrivateKey::deserialise(ByteString& serialised)
{
	ByteString dEC = ByteString::chainDeserialise(serialised);
	ByteString dD = ByteString::chainDeserialise(serialised);

	if ((dEC.size() == 0) ||
	    (dD.size() == 0))
	{
		return false;
	}

	setEC(dEC);
	setD(dD);

	return true;
}
Ejemplo n.º 29
0
Quaternion::Quaternion(const EulerAngles &euler) :
	Vector(4)
{
	float cosPhi_2 = cosf(euler.getPhi() / 2.0f);
	float cosTheta_2 = cosf(euler.getTheta() / 2.0f);
	float cosPsi_2 = cosf(euler.getPsi() / 2.0f);
	float sinPhi_2 = sinf(euler.getPhi() / 2.0f);
	float sinTheta_2 = sinf(euler.getTheta() / 2.0f);
	float sinPsi_2 = sinf(euler.getPsi() / 2.0f);
	setA(cosPhi_2 * cosTheta_2 * cosPsi_2 +
	     sinPhi_2 * sinTheta_2 * sinPsi_2);
	setB(sinPhi_2 * cosTheta_2 * cosPsi_2 -
	     cosPhi_2 * sinTheta_2 * sinPsi_2);
	setC(cosPhi_2 * sinTheta_2 * cosPsi_2 +
	     sinPhi_2 * cosTheta_2 * sinPsi_2);
	setD(cosPhi_2 * cosTheta_2 * sinPsi_2 +
	     sinPhi_2 * sinTheta_2 * cosPsi_2);
}
Ejemplo n.º 30
0
Quaternion::Quaternion(const EulerAngles &euler) :
	Vector(4)
{
	double cosPhi_2 = cos(double(euler.getPhi()) / 2.0);
	double sinPhi_2 = sin(double(euler.getPhi()) / 2.0);
	double cosTheta_2 = cos(double(euler.getTheta()) / 2.0);
	double sinTheta_2 = sin(double(euler.getTheta()) / 2.0);
	double cosPsi_2 = cos(double(euler.getPsi()) / 2.0);
	double sinPsi_2 = sin(double(euler.getPsi()) / 2.0);
	setA(cosPhi_2 * cosTheta_2 * cosPsi_2 +
	     sinPhi_2 * sinTheta_2 * sinPsi_2);
	setB(sinPhi_2 * cosTheta_2 * cosPsi_2 -
	     cosPhi_2 * sinTheta_2 * sinPsi_2);
	setC(cosPhi_2 * sinTheta_2 * cosPsi_2 +
	     sinPhi_2 * cosTheta_2 * sinPsi_2);
	setD(cosPhi_2 * cosTheta_2 * sinPsi_2 -
	     sinPhi_2 * sinTheta_2 * cosPsi_2);
}