当前位置: 首页>>代码示例>>C++>>正文


C++ Extension::getA方法代码示例

本文整理汇总了C++中Extension::getA方法的典型用法代码示例。如果您正苦于以下问题:C++ Extension::getA方法的具体用法?C++ Extension::getA怎么用?C++ Extension::getA使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Extension的用法示例。


在下文中一共展示了Extension::getA方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: square

void Extension::square(Extension& ext) {
	this->a.add(ext.getA(), ext.getC());
	this->a.multiply(this->a, this->a);
	
	this->b.add(ext.getB(), ext.getD());
	this->b.multiply(this->b, this->b);
	
	this->a.add(this->a, this->b);
	
	this->c.multiply(ext.getC(), ext.getC());
	
	this->d.multiply(ext.getD(), ext.getD());
	this->d.add(this->d, this->c);

/*
	Element m0, m1, m2, m3;
	
	m0.square(ext.getA());
	m1.square(ext.getB());
	m2.square(ext.getC());
	m3.square(ext.getD());

	this->a.add(m0, m1);
	this->a.add(this->a, m2);
	this->a.add(this->a, m3);

	this->b.add(m1, m3);

	this->c.set(m2);

	this->d.add(m2, m3);
*/
}
开发者ID:xdiegool,项目名称:gezel-elliptic-curve-crypto,代码行数:33,代码来源:extension.cpp

示例2: multiply

void Extension::multiply(Extension& extA, Extension& extB) {	
	// Calculate m's
	Element m0, m1, m2, m3;
	
	m0.multiply(extA.getA(), extB.getA());
	m1.multiply(extA.getB(), extB.getB());
	m2.multiply(extA.getC(), extB.getC());
	m3.multiply(extA.getD(), extB.getD());
	
	// Calculate some temporary variables
	Element k0, k1, k2, k3, k4, k5, k6, k7;
	
	k0.add(extA.getA(), extA.getB());
	k1.add(extA.getC(), extA.getD());
	
	k2.add(extB.getA(), extB.getB());
	k3.add(extB.getC(), extB.getD());
	
	k4.add(extA.getB(), extA.getD());
	k5.add(extB.getB(), extB.getD());
	
	k6.add(extA.getA(), extA.getC());
	k7.add(extB.getA(), extB.getC());
	
	Element l0, l1, l2, l3;
	
	l0.multiply(k0, k2);
	l1.multiply(k1, k3);
	l2.multiply(k4, k5);
	l3.multiply(k6, k7);
	
	Element n0, n1, p0;
	
	n0.add(k0, k1);
	n1.add(k2, k3);
	
	p0.multiply(n0, n1);
	
	Element q0, q1, q3;
	
	q0.add(l1, m0);
	q1.add(q0, l0);
	q3.add(m2, m3);
	
	// [Calculate results]	
	// Calculate r0	
	this->a.add(q3, m0);
	this->a.add(this->a, m1);
	
	// Calculate r1
	this->b.add(q1, m2);
	
	// Calculate r2
//	this->c.add(q0, q3);
	this->c.add(q0, m1);
	this->c.add(this->c, m2);
	this->c.add(this->c, l2);
	this->c.add(this->c, l3);
	
	// Calculate r3
	this->d.add(q1, p0);
	this->d.add(this->d, m3);
	this->d.add(this->d, l3);
}
开发者ID:xdiegool,项目名称:gezel-elliptic-curve-crypto,代码行数:64,代码来源:extension.cpp


注:本文中的Extension::getA方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。