Created
January 18, 2016 05:47
-
-
Save anonymous/e8871647fa9f45cc98a9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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