summaryrefslogtreecommitdiff
path: root/calc.go
diff options
context:
space:
mode:
Diffstat (limited to 'calc.go')
-rw-r--r--calc.go33
1 files changed, 5 insertions, 28 deletions
diff --git a/calc.go b/calc.go
index 16d183b..f71f3e8 100644
--- a/calc.go
+++ b/calc.go
@@ -2512,31 +2512,23 @@ func convertTemperature(fromUOM, toUOM string, value float64) float64 {
switch fromUOM {
case "F":
value = (value-32)/1.8 + 273.15
- break
case "C":
value += 273.15
- break
case "Rank":
value /= 1.8
- break
case "Reau":
value = value*1.25 + 273.15
- break
}
// convert from Kelvin
switch toUOM {
case "F":
value = (value-273.15)*1.8 + 32
- break
case "C":
value -= 273.15
- break
case "Rank":
value *= 1.8
- break
case "Reau":
value = (value - 273.15) * 0.8
- break
}
return value
}
@@ -2567,8 +2559,8 @@ func (fn *formulaFuncs) CONVERT(argsList *list.List) formulaArg {
} else if fromCategory == catgoryTemperature {
return newNumberFormulaArg(convertTemperature(fromUOM, toUOM, val))
}
- fromConversion, _ := unitConversions[fromCategory][fromUOM]
- toConversion, _ := unitConversions[fromCategory][toUOM]
+ fromConversion := unitConversions[fromCategory][fromUOM]
+ toConversion := unitConversions[fromCategory][toUOM]
baseValue := val * (1 / fromConversion)
return newNumberFormulaArg((baseValue * toConversion) / toMultiplier)
}
@@ -4617,9 +4609,7 @@ func cofactorMatrix(i, j int, A [][]float64) float64 {
sign = 1
}
var B [][]float64
- for _, row := range A {
- B = append(B, row)
- }
+ B = append(B, A...)
for m := 0; m < N; m++ {
for n := j + 1; n < N; n++ {
B[m][n-1] = B[m][n]
@@ -8317,7 +8307,6 @@ func calcColumnMeans(mtxX, mtxRes [][]float64, c, r int) {
}
putDouble(mtxRes, i, sum/float64(r))
}
- return
}
// calcColumnsDelta calculates subtract of the columns of matrix.
@@ -8688,10 +8677,8 @@ func calcTrendGrowthRegression(bConstant, bGrowth bool, trendType, nCXN, nRXN, K
switch trendType {
case 1:
calcTrendGrowthSimpleRegression(bConstant, bGrowth, mtxY, mtxX, newX, mtxRes, meanY, N)
- break
case 2:
calcTrendGrowthMultipleRegressionPart1(bConstant, bGrowth, mtxY, mtxX, newX, mtxRes, meanY, nRXN, K, N)
- break
default:
calcTrendGrowthMultipleRegressionPart2(bConstant, bGrowth, mtxY, mtxX, newX, mtxRes, meanY, nCXN, K, N)
}
@@ -8728,10 +8715,8 @@ func calcTrendGrowth(mtxY, mtxX, newX [][]float64, bConstant, bGrowth bool) ([][
switch trendType {
case 1:
mtxRes = getNewMatrix(nCXN, nRXN)
- break
case 2:
mtxRes = getNewMatrix(1, nRXN)
- break
default:
mtxRes = getNewMatrix(nCXN, 1)
}
@@ -10630,13 +10615,10 @@ func getTDist(T, fDF, nType float64) float64 {
switch nType {
case 1:
res = 0.5 * getBetaDist(fDF/(fDF+T*T), fDF/2, 0.5)
- break
case 2:
res = getBetaDist(fDF/(fDF+T*T), fDF/2, 0.5)
- break
case 3:
res = math.Pow(1+(T*T/fDF), -(fDF+1)/2) / (math.Sqrt(fDF) * getBeta(0.5, fDF/2.0))
- break
case 4:
X := fDF / (T*T + fDF)
R := 0.5 * getBetaDist(X, 0.5*fDF, 0.5)
@@ -10644,7 +10626,6 @@ func getTDist(T, fDF, nType float64) float64 {
if T < 0 {
res = R
}
- break
}
return res
}
@@ -10888,15 +10869,11 @@ func tTest(bTemplin bool, mtx1, mtx2 [][]formulaArg, c1, c2, r1, r2 int, fT, fF
return 0, 0, false
}
c := fS1 / (fS1 + fS2)
- fT = math.Abs(sum1/cnt1-sum2/cnt2) / math.Sqrt(fS1+fS2)
- fF = 1 / (c*c/(cnt1-1) + (1-c)*(1-c)/(cnt2-1))
- return fT, fF, true
+ return math.Abs(sum1/cnt1-sum2/cnt2) / math.Sqrt(fS1+fS2), 1 / (c*c/(cnt1-1) + (1-c)*(1-c)/(cnt2-1)), true
}
fS1 := (sumSqr1 - sum1*sum1/cnt1) / (cnt1 - 1)
fS2 := (sumSqr2 - sum2*sum2/cnt2) / (cnt2 - 1)
- fT = math.Abs(sum1/cnt1-sum2/cnt2) / math.Sqrt((cnt1-1)*fS1+(cnt2-1)*fS2) * math.Sqrt(cnt1*cnt2*(cnt1+cnt2-2)/(cnt1+cnt2))
- fF = cnt1 + cnt2 - 2
- return fT, fF, true
+ return math.Abs(sum1/cnt1-sum2/cnt2) / math.Sqrt((cnt1-1)*fS1+(cnt2-1)*fS2) * math.Sqrt(cnt1*cnt2*(cnt1+cnt2-2)/(cnt1+cnt2)), cnt1 + cnt2 - 2, true
}
// tTest is an implementation of the formula function TTEST.