Skip to content

Instantly share code, notes, and snippets.

Created January 18, 2016 05:47
Show Gist options
  • Save anonymous/e8871647fa9f45cc98a9 to your computer and use it in GitHub Desktop.
Save anonymous/e8871647fa9f45cc98a9 to your computer and use it in GitHub Desktop.
package temportalist.ropes.common
import javax.vecmath.GMatrix
import org.lwjgl.util.vector.Matrix3f
import scala.collection.mutable
import scala.collection.mutable.ListBuffer
/**
* Created by TheTemportalist on 1/17/2016.
*/
object Ropes {
def main(args: Array[String]): Unit = {
println("hello world")
val size = 11
val xData = new Array[Double](size)
val yData = new Array[Double](size)
for (i <- 0 until size) {
val x = i - 5
xData(i) = x
yData(i) = if (x % 5 == 0) 1 else 0
}
val matrix_X = new GMatrix(size, 3)
val matrix_Y = new GMatrix(size, 1)
for (i <- 0 until size) {
matrix_X.setRow(i, Array[Double](1, xData(i), Math.pow(xData(i), 2)))
matrix_Y.setRow(i, yData)
}
println(matrix_X)
val transposed_X = new GMatrix(matrix_X)
transposed_X.transpose()
println(transposed_X)
val mul_trans_X = new GMatrix(transposed_X)
mul_trans_X.mul(matrix_X)
println(mul_trans_X)
val inv_mul_trans_X = new GMatrix(mul_trans_X)
mul_trans_X.invert()
println(inv_mul_trans_X)
val imtX_m_tX = new GMatrix(inv_mul_trans_X)
imtX_m_tX.mul(transposed_X)
println(imtX_m_tX)
val coeff = new GMatrix(imtX_m_tX)
coeff.mul(matrix_Y)
println(coeff)
// coefficients = inv(transpose(X)*X) * transpose(X)*y
// coefficients will be a 3x1 matrix corresponding to [a b c] in y=ax^2+bx+c
}
def getMatrix3f(matrix: Array[Array[Float]]): Matrix3f = {
val matrixRet = new Matrix3f
matrixRet.m00 = matrix(0)(0)
matrixRet.m01 = if (matrix(0).length > 1) matrix(0)(1) else 0
matrixRet.m02 = if (matrix(0).length > 2) matrix(0)(2) else 0
matrixRet.m10 = matrix(1)(0)
matrixRet.m11 = if (matrix(0).length > 1) matrix(1)(1) else 0
matrixRet.m12 = if (matrix(0).length > 2) matrix(1)(2) else 0
matrixRet.m20 = matrix(2)(0)
matrixRet.m21 = if (matrix(0).length > 1) matrix(2)(1) else 0
matrixRet.m22 = if (matrix(0).length > 2) matrix(2)(2) else 0
matrixRet
}
def print(matrix: Matrix3f): Unit = {
println(matrix.m00)
println(matrix.m01)
println(matrix.m02)
println(matrix.m10)
println(matrix.m11)
println(matrix.m12)
println(matrix.m20)
println(matrix.m21)
println(matrix.m22)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment