Mercurial > hg > jslab
annotate examples/maths/GaussianForm.java @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | 5df24c91468d |
children |
rev | line source |
---|---|
samer@1 | 1 package eg.maths; |
samer@1 | 2 import samer.core.*; |
samer@1 | 3 import samer.maths.*; |
samer@1 | 4 |
samer@1 | 5 public class GaussianForm extends QuadraticForm |
samer@1 | 6 { |
samer@1 | 7 public GaussianForm() { super(); } |
samer@1 | 8 public GaussianForm(int n) { super(n); } |
samer@1 | 9 |
samer@1 | 10 public double apply(double [] x) { |
samer@1 | 11 return -Math.exp(super.apply(x)); |
samer@1 | 12 } |
samer@1 | 13 |
samer@1 | 14 public VectorFunctionOfVector derivative() |
samer@1 | 15 { |
samer@1 | 16 return new VectorFunctionOfVector() { |
samer@1 | 17 public void apply(double [] x) { |
samer@1 | 18 double z=GaussianForm.this.apply(x); |
samer@1 | 19 Mathx.copy(y,x); |
samer@1 | 20 Mathx.mul(x,-z); |
samer@1 | 21 } |
samer@1 | 22 public void apply(double [] x, double [] v) { |
samer@1 | 23 double z=GaussianForm.this.apply(x); |
samer@1 | 24 Mathx.copy(y,v); |
samer@1 | 25 Mathx.mul(v,-z); |
samer@1 | 26 } |
samer@1 | 27 }; |
samer@1 | 28 } |
samer@1 | 29 } |