public override IBlauPoint clone() { IBlauPoint dupe = new QuantizedBlauPoint(this.Space, this._quantizer); for (int i = 0; i < this.Space.Dimension; i++) { dupe.setCoordinate(i, this.getCoordinate(i)); } return(dupe); }
// convert integral lattice coordinates to real blauspace coordinates private IBlauPoint getCurrentBlauPoint() { BlauPoint p = new QuantizedBlauPoint(this.BlauSpace, this); for (int i = 0; i < this.BlauSpace.Dimension; i++) { double coord = this.BlauSpace.getAxis(i).MinimumValue + ((double)this.getCoordinate(i) * getStepSize(i)); p.setCoordinate(i, coord); } return(p); }
// quantize a blaupoint with respect to this lattice public IBlauPoint quantize(IBlauPoint p) { if (p.Space != this.BlauSpace) { throw new Exception("BlauSpaceLattice is being requested to quantize a BlauPoint which lies in a foreign BlauSpace"); } IBlauPoint qp = new QuantizedBlauPoint(p.Space, this); for (int i = 0; i < p.Space.Dimension; i++) { double px = p.getCoordinate(i); // qp will quantize coordinates to this lattice qp.setCoordinate(i, px); } return(qp); }
public override int CompareTo(object obj) { if (obj is QuantizedBlauPoint) { QuantizedBlauPoint p = (QuantizedBlauPoint)obj; for (int i = 0; i < this.Space.Dimension; i++) { if (this.getQuantizedCoordinate(i) < p.getQuantizedCoordinate(i)) { return(-1); } if (this.getQuantizedCoordinate(i) > p.getQuantizedCoordinate(i)) { return(+1); } } return(0); } else if (obj is BlauPoint) { return(base.CompareTo(obj)); } throw new ArgumentException("object is not a QuantizedBlauPoint/BlauPoint"); }