MCPcopy Create free account
hub / github.com/WinVector/Logistic / expScale

Method expScale

src/com/winvector/opt/impl/HelperFns.java:91–115  ·  view source on GitHub ↗
(final double[] r)

Source from the content-addressed store, hash-verified

89 }
90
91 public static void expScale(final double[] r) {
92 final int n = r.length;
93 if(n>0) {
94 double max = r[0];
95 for(int i=1;i<n;++i) {
96 max = Math.max(max,r[i]);
97 }
98 double total = 0.0;
99 for(int i=0;i<n;++i) {
100 final double diff = r[i] - max;
101 final double vi;
102 if(diff<0.0) {
103 vi = Math.exp(diff);
104 } else {
105 vi = 1.0;
106 }
107 r[i] = vi;
108 total += vi;
109 }
110 final double scale = 1.0/total;
111 for(int i=0;i<n;++i) {
112 r[i] *= scale;
113 }
114 }
115 }
116
117 /**
118 * from: http://martin.ankerl.com/2007/02/11/optimized-exponential-functions-for-java/

Callers 3

confirmEffectCalcMethod · 0.95
confirmEffectCalcMethod · 0.95
predictMethod · 0.95

Calls 1

expMethod · 0.80

Tested by 2

confirmEffectCalcMethod · 0.76
confirmEffectCalcMethod · 0.76