Skip to content

Commit

Permalink
...
Browse files Browse the repository at this point in the history
  • Loading branch information
strike65 committed Apr 4, 2019
1 parent 148ed86 commit ea69556
Show file tree
Hide file tree
Showing 32 changed files with 9,935 additions and 359 deletions.
Expand Up @@ -178,23 +178,32 @@ extension SSHypothesisTesting {
l += 1
}
var sum: FPT = 0
var comp: FPT = 0
var oldsum: FPT = 0
let nr: FPT = 1 / nn
k = 0
while k < acr.count {
l = 1
while l < k {
sum += pow1(acr[l], 2)
oldsum = sum
comp = comp + pow1(acr[l], 2)
sum = comp + oldsum
comp = (oldsum - sum) + comp
l += 1
}
serBartlett.append(nr * (1 + 2 * sum))
sum = 0
comp = 0
oldsum = 0
k += 1
}
serBartlett[0] = 0
serWhiteNoise.append(0)
statBoxLjung.append(FPT.infinity)
sig.append(0)
sum = 0
comp = 0
oldsum = 0
let f = nn * (nn * 2)
k = 1
var kk: FPT = 0
Expand All @@ -205,7 +214,11 @@ extension SSHypothesisTesting {
l = 1
while l <= k {
ll = makeFP(l)
sum += sum + (pow1(acr[l], 2) / (nn - ll))
oldsum = sum
comp = comp + (pow1(acr[l], 2) / (nn - ll))
sum = comp + oldsum
comp = (oldsum - sum) + comp
// sum += sum + (pow1(acr[l], 2) / (nn - ll))
l += 1
}
statBoxLjung.append(f * sum)
Expand All @@ -216,6 +229,8 @@ extension SSHypothesisTesting {
throw error
}
sum = 0
comp = 0
oldsum = 0
k += 1
}
var coeff: Dictionary<String, FPT> = Dictionary<String, FPT>()
Expand Down
Expand Up @@ -644,8 +644,14 @@ extension SSHypothesisTesting {
fileprivate class func sumUp<FPT: SSFloatingPoint & Codable>(start: Int!, end: Int!) -> FPT {
var sum: FPT = makeFP(start)
var i: Int = start
var comp: FPT = 0
var oldsum: FPT = 0
while i < end {
sum += makeFP(i)
oldsum = sum
comp = comp + makeFP(i)
sum = comp + oldsum
comp = (oldsum - sum) + comp
// sum += makeFP(i)
i += 1
}
return sum
Expand Down Expand Up @@ -780,7 +786,10 @@ extension SSHypothesisTesting {
pexact2 = FPT.nan
}
else {
z = abs(U - mn / 2) / sqrt((mn * (n1 + n2 + 1)) / 12)
let e1: FPT = abs(U - mn / 2)
let e2: FPT = (n1 + n2 + 1)
let e3: FPT = (mn * e2) / 12
z = e1 / sqrt(e3)
if (n1 * n2) <= 400 && ((n1 * n2) + min(n1, n2)) <= 220 {
do {
if U <= (n1 * n2 + 1) / 2 {
Expand Down
Expand Up @@ -135,7 +135,10 @@ extension SSHypothesisTesting {
throw error
}
let t2 = pow1(quantile, 2)
let t: FPT = ( (makeFP(data.sampleSize) - 1)) * sqrt(t2 / (makeFP(data.sampleSize) - 2 + t2)) / sqrt(makeFP(data.sampleSize))
let e1: FPT = makeFP(data.sampleSize) - 1
let e2: FPT = (makeFP(data.sampleSize) - 2 + t2)
let e3: FPT = sqrt(makeFP(data.sampleSize))
let t: FPT = e1 * sqrt(t2 / e2) / e3
var res:SSGrubbsTestResult<T, FPT> = SSGrubbsTestResult<T, FPT>()
res.sampleSize = data.sampleSize
res.maxDiff = maxDiff
Expand Down
Expand Up @@ -203,8 +203,8 @@ public class SSHypothesisTesting {
twoTailedUEV = cdfTValueUnequalVariances * 2
oneTailedUEV = cdfTValueUnequalVariances
}
let effectSize_EV = sqrt((tValueEqualVariances * tValueEqualVariances) / ((tValueEqualVariances * tValueEqualVariances) + dfEqualVariances))
let effectSize_UEV = sqrt((tValueUnequalVariances * tValueUnequalVariances) / ((tValueUnequalVariances * tValueUnequalVariances) + dfUnequalVariances))
let effectSize_EV:FPT = sqrt((tValueEqualVariances * tValueEqualVariances) / ((tValueEqualVariances * tValueEqualVariances) + dfEqualVariances))
let effectSize_UEV:FPT = sqrt((tValueUnequalVariances * tValueUnequalVariances) / ((tValueUnequalVariances * tValueUnequalVariances) + dfUnequalVariances))
// Welch
let var1OverN1: FPT = var1 / n1
let var2OverN2: FPT = var2 / n2
Expand Down Expand Up @@ -439,7 +439,7 @@ public class SSHypothesisTesting {
if sed.isZero {
pTwoTailed = 1
}
let effectSize = sqrt((t * t) / ((t * t) + df))
let effectSize:FPT = sqrt((t * t) / ((t * t) + df))
var result: SSMatchedPairsTTestResult<FPT> = SSMatchedPairsTTestResult<FPT>()
result.sampleSize = makeFP(n)
result.covariance = cov
Expand Down
5 changes: 4 additions & 1 deletion SwiftyStats/CommonSource/ProbDist/ProbDist-LogNormal.swift
Expand Up @@ -75,7 +75,10 @@ public func pdfLogNormalDist<FPT: SSFloatingPoint & Codable>(x: FPT, mean: FPT,
return 0
}
else {
let r = 1 / (sqrt(v) * x * sqrt(2 * FPT.pi)) * exp1(-1 * pow1(log1(x) - mean, 2) / (2 * v))
let e1: FPT = sqrt(v) * x
let e2: FPT = e1 * sqrt(2 * FPT.pi)
let e3: FPT = pow1(log1(x) - mean, 2)
let r:FPT = 1 / e2 * exp1(-1 * e3 / (2 * v))
return r
}
}
Expand Down
6 changes: 3 additions & 3 deletions SwiftyStats/CommonSource/ProbDist/ProbDist-Pareto.swift
Expand Up @@ -84,9 +84,9 @@ public func paraParetoDist<FPT: SSFloatingPoint & Codable>(minimum a: FPT, shape
result.kurtosis = FPT.nan
}
if b > 3 {
let s1 = sqrt((-2 + b) / b)
let s2 = (1 + b)
let s3 = (b - 3)
let s1: FPT = sqrt((-2 + b) / b)
let s2: FPT = (1 + b)
let s3: FPT = (b - 3)
result.skewness = (2 * s1 * s2) / s3
}
else {
Expand Down
6 changes: 3 additions & 3 deletions SwiftyStats/CommonSource/ProbDist/ProbDist-Triangular.swift
Expand Up @@ -263,9 +263,9 @@ public func quantileTriangularDist<FPT: SSFloatingPoint & Codable>(p: FPT, lower
}
let t1 = (-a + c) / (-a + b)
if p <= t1 {
let s1 = (-a + b)
let s2 = (-a + c)
let s3 = sqrt(s1 * s2 * p)
let s1:FPT = (-a + b)
let s2:FPT = (-a + c)
let s3:FPT = sqrt(s1 * s2 * p)
return a + s3
}
else {
Expand Down
21 changes: 21 additions & 0 deletions SwiftyStats/CommonSource/Shared/Extensions/FP-Extension.swift
Expand Up @@ -92,6 +92,9 @@ public protocol SSFloatingPoint: FloatingPoint {
/// ln(2)
static var ln2: Self { get }

/// ln(10)
static var ln10: Self { get }

/// 1 / 12
static var oo12: Self { get }

Expand Down Expand Up @@ -293,6 +296,12 @@ extension Double: SSFloatingPoint {
return 0.6931471805599453094172321214581765680755
}
}
/// ln(10)
public static var ln10: Double {
get {
return 2.3025850929940456840179914546843642076011
}
}
/// 1 / 12
public static var oo12: Double {
get {
Expand Down Expand Up @@ -542,6 +551,12 @@ extension Float: SSFloatingPoint {
return 0.6931471805599453094172321214581765680755
}
}
/// ln(10)
public static var ln10: Float {
get {
return 2.3025850929940456840179914546843642076011
}
}
/// 1 / 12
public static var oo12: Float {
get {
Expand Down Expand Up @@ -791,6 +806,12 @@ extension Float80: SSFloatingPoint {
return 0.6931471805599453094172321214581765680755
}
}
/// ln(10)
public static var ln10: Float80 {
get {
return 2.3025850929940456840179914546843642076011
}
}
/// 1 / 12
public static var oo12: Float80 {
get {
Expand Down

0 comments on commit ea69556

Please sign in to comment.