You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
Kotlin
40 lines
1.1 KiB
Kotlin
val items = listOf("xyzw", "rgba", "stpq").map { it.toCharArray() }
|
|
|
|
|
|
val map = mutableMapOf<Int, MutableSet<List<Int>>>()
|
|
|
|
for (firstChar in 0..3) {
|
|
for (secondChar in 0..3) {
|
|
val char2 = listOf(firstChar, secondChar)
|
|
map.getOrPut(char2.max()!!, ::mutableSetOf).add(char2)
|
|
|
|
for (thirdChar in 0..3) {
|
|
val char3 = listOf(firstChar, secondChar, thirdChar)
|
|
map.getOrPut(char3.max()!!, ::mutableSetOf)
|
|
.add(char3)
|
|
|
|
for (fourth in 0..3) {
|
|
val char4 = listOf(firstChar, secondChar, thirdChar, fourth)
|
|
map.getOrPut(char4.max()!!, ::mutableSetOf)
|
|
.add(char4)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for ((dim, nrs) in map) {
|
|
if (dim != 1) {
|
|
println("Vec${maxOf(dim + 1, 2)} ->")
|
|
}
|
|
|
|
for (item in nrs) {
|
|
|
|
for (set in items) {
|
|
println(
|
|
" val ${item.map(set::get).joinToString("")}\n get() = KVec${item.size}(${item.map(items[0]::get)
|
|
.joinToString(",")})\n"
|
|
)
|
|
}
|
|
}
|
|
}
|