Hullaballoonatic
05/10/2019, 8:43 PMLuke
05/10/2019, 8:55 PM.fold
. It uses an accumulator that is passed in the lambdaHullaballoonatic
05/10/2019, 9:30 PMkarelpeeters
05/10/2019, 9:34 PMHullaballoonatic
05/10/2019, 9:34 PMval (u: List<Vector>, e: List<Vector>) = cols.foldIndexed(ArrayList<Vector>(width) to ArrayList<Vector>(width)) { k, (u, e), a ->
u[k] = when(k) {
0 -> a
1 -> a - a * e[0] * e[0]
else -> a - e.map { a * it * it }.sum()
}
e[k] = u[k] / u[k].magnitude
u to e
}
karelpeeters
05/10/2019, 9:55 PMHullaballoonatic
05/10/2019, 9:55 PMkarelpeeters
05/10/2019, 9:57 PMval U = mutableListOf<Vector>()
for (a in A)
U += (a - U.sumBy { it * a * a }).unit
Hullaballoonatic
05/10/2019, 9:58 PMkarelpeeters
05/10/2019, 9:59 PMHullaballoonatic
05/10/2019, 10:39 PMval e = arrayListOf<Vector>()
cols.forEachIndexed { k, a ->
e[k] = when (k) {
0 -> a
1 -> a - a * e[0] * e[0]
else -> a - e.map { a * it * it }.sum()
}
}
karelpeeters
05/10/2019, 10:40 PMHullaballoonatic
05/10/2019, 10:41 PMkarelpeeters
05/10/2019, 10:41 PMHullaballoonatic
05/10/2019, 10:41 PMkarelpeeters
05/10/2019, 10:42 PMHullaballoonatic
05/10/2019, 10:43 PMkarelpeeters
05/10/2019, 10:44 PMHullaballoonatic
05/10/2019, 10:44 PMkarelpeeters
05/10/2019, 10:44 PM