package mikera.vectorz.performance;
import com.google.caliper.Runner;
import com.google.caliper.SimpleBenchmark;
import mikera.matrixx.AMatrix;
import mikera.matrixx.Matrix33;
import mikera.matrixx.Matrixx;
import mikera.vectorz.AVector;
import mikera.vectorz.Vector;
import mikera.vectorz.Vector3;
/**
* Caliper based benchmarks
*
* @author Mike
*/
public class PerformanceBenchmark extends SimpleBenchmark {
public void timeVector3Addition(int runs) {
Vector3 v=Vector3.of(1,2,3);
Vector3 v2=Vector3.of(1,2,3);
for (int i=0; i<runs; i++) {
v.add(v2);
}
}
public void timeMatrix3Rotation(int runs) {
Vector3 axis=Vector3.of(1,2,3);
Vector3 v=Vector3.of(Math.random(),Math.random(),Math.random());
Matrix33 rot=Matrixx.createRotationMatrix(axis, Math.random());
for (int i=0; i<runs; i++) {
rot.transformInPlace(v);
}
}
public void timeVectorAddMultiple(int runs) {
AVector v=Vector.of(1,2,3);
AVector v2=Vector.of(1,2,3);
for (int i=0; i<runs; i++) {
v.addMultiple(v2,2.0);
}
}
public void timeMatrixInverse(int runs) {
AMatrix m=Matrixx.createRandomSquareMatrix(5);
for (int i=0; i<runs; i++) {
m=m.inverse();
}
}
/**
* @param args
*/
public static void main(String[] args) {
new PerformanceBenchmark().run();
}
private void run() {
Runner runner=new Runner();
runner.run(new String[] {this.getClass().getCanonicalName()});
}
}