function CComplex(x, y) {
this.x = x;
this.y = y; CComplex.prototype.addition = function(z) {
var res = new CComplex(0, 0); res.x = this.x + z.x;
res.y = this.y + z.y; return res;
}
CComplex.prototype.subtration = function(z) {
var res = new CComplex(0, 0); res.x = this.x - z.x;
res.y = this.y - z.y; return res;
} /* 如果按照通常的算法要用4次乘法
现计算出三个中间变量,则计算只需用3次乘法
var res = new CComplex(0, 0);
i var p = z1.x * z2.x;
var q = z1.y * z2.y;
var s = (z1.x + z1.y) * (z2.x + z2.y); res.x = p - q;
res.y = s - p - q; */
CComplex.prototype.multiplication = function(z) {
var res = new CComplex(0, 0); var p = this.x * z.x;
var q = this.y * z.y;
var s = (this.x + this.y) * (z.x + z.y); res.x = p - q;
res.y = s - p - q; return res;
}
/* var res = new CComplex(0, 0);
res = z1 / z2 = (z1 * z2) / z2模的平方;
******************************************
var multTemp = z1.multiplication(z2);
var squqreTemp = z2.getSquareModulus();
res.x = multTemp.x / squqreTemp;
res.y = multTemp.y / squqreTemp;
*/
CComplex.prototype.division = function(z) {
var res = new CComplex(0, 0); var multTemp = this.multiplication(z);
var squqreTemp = z.getSquareModulus(); res.x = multTemp.x / squqreTemp;
res.y = multTemp.y / squqreTemp; return res;
}
/*
复数模的平方
*/
CComplex.prototype.getSquareModulus = function() { return this.x * this.x + this.y * this.y;
}
}
this.x = x;
this.y = y; CComplex.prototype.addition = function(z) {
var res = new CComplex(0, 0); res.x = this.x + z.x;
res.y = this.y + z.y; return res;
}
CComplex.prototype.subtration = function(z) {
var res = new CComplex(0, 0); res.x = this.x - z.x;
res.y = this.y - z.y; return res;
} /* 如果按照通常的算法要用4次乘法
现计算出三个中间变量,则计算只需用3次乘法
var res = new CComplex(0, 0);
i var p = z1.x * z2.x;
var q = z1.y * z2.y;
var s = (z1.x + z1.y) * (z2.x + z2.y); res.x = p - q;
res.y = s - p - q; */
CComplex.prototype.multiplication = function(z) {
var res = new CComplex(0, 0); var p = this.x * z.x;
var q = this.y * z.y;
var s = (this.x + this.y) * (z.x + z.y); res.x = p - q;
res.y = s - p - q; return res;
}
/* var res = new CComplex(0, 0);
res = z1 / z2 = (z1 * z2) / z2模的平方;
******************************************
var multTemp = z1.multiplication(z2);
var squqreTemp = z2.getSquareModulus();
res.x = multTemp.x / squqreTemp;
res.y = multTemp.y / squqreTemp;
*/
CComplex.prototype.division = function(z) {
var res = new CComplex(0, 0); var multTemp = this.multiplication(z);
var squqreTemp = z.getSquareModulus(); res.x = multTemp.x / squqreTemp;
res.y = multTemp.y / squqreTemp; return res;
}
/*
复数模的平方
*/
CComplex.prototype.getSquareModulus = function() { return this.x * this.x + this.y * this.y;
}
}