All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.bixilon.kotlinglm.Gauss.kt Maven / Gradle / Ivy

package de.bixilon.kotlinglm

import de.bixilon.kotlinglm.vec2.Vec2
import de.bixilon.kotlinglm.vec2.Vec2d

interface Gauss {

    fun gauss(x: Float, expectedValue: Float, standardDeviation: Float) =
            GLM.exp(-((x - expectedValue) * (x - expectedValue)) / (2f * standardDeviation * standardDeviation)) /
                    (standardDeviation * GLM.sqrt(6.28318530717958647692528676655900576f))

    fun gauss(x: Double, expectedValue: Double, standardDeviation: Double) =
            GLM.exp(-((x - expectedValue) * (x - expectedValue)) / (2.0 * standardDeviation * standardDeviation)) /
                    (standardDeviation * GLM.sqrt(6.28318530717958647692528676655900576))

    fun gauss(coord: Vec2, expectedValue: Vec2, standardDeviation: Vec2, res: Vec2 = Vec2()): Float {
        val squaredX = ((coord.x - expectedValue.x) * (coord.x - expectedValue.x)) / (2f * standardDeviation.x * standardDeviation.x)
        val squaredY = ((coord.y - expectedValue.y) * (coord.y - expectedValue.y)) / (2f * standardDeviation.y * standardDeviation.y)
        return GLM.exp(-(squaredX + squaredY))
    }

    fun gauss(coord: Vec2d, expectedValue: Vec2d, standardDeviation: Vec2d, res: Vec2d = Vec2d()): Double {
        val squaredX = ((coord.x - expectedValue.x) * (coord.x - expectedValue.x)) / (2f * standardDeviation.x * standardDeviation.x)
        val squaredY = ((coord.y - expectedValue.y) * (coord.y - expectedValue.y)) / (2.0 * standardDeviation.y * standardDeviation.y)
        return GLM.exp(-(squaredX + squaredY))
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy