33 lines
1.2 KiB
Groovy
33 lines
1.2 KiB
Groovy
Number.metaClass.mixin NaiveMatrixCategory
|
|
|
|
println 'Demo 1: functionality as requested'
|
|
def a = [[5,3],[4,2]] as NaiveMatrix
|
|
println 'a == ' + a
|
|
def b = new NaiveMatrix([[1,2],[7,8]])
|
|
println 'b == ' + b
|
|
|
|
def z = [[0,0],[0,0]] as NaiveMatrix
|
|
println "a + b == (${a}) + (${b}) == " + (a + b)
|
|
println "a - b == (${a}) - (${b}) == " + (a - b)
|
|
println "a * b == (${a}) * (${b}) == " + (a * b)
|
|
println "a / b == (${a}) / (${b}) == " + (a / b)
|
|
println "a ** b == (${a}) ** (${b}) == " + (a ** b)
|
|
|
|
println '\nDemo 2: Extended functionality'
|
|
println "a % b == (${a}) % (${b}) == " + (a % b)
|
|
|
|
println '\nDemo 3: Element-wise scalar operations'
|
|
|
|
println "2 + b == 2 + (${b}) == " + (2 + b)
|
|
println "2 - b == 2 - (${b}) == " + (2 - b)
|
|
println "2 * b == 2 * (${b}) == " + (2 * b)
|
|
println "2 / b == 2 / (${b}) == " + (2 / b)
|
|
println "2 ** b == 2 ** (${b}) == " + (2 ** b)
|
|
println "2 % b == 2 % (${b}) == " + (2 % b)
|
|
|
|
println "\na + 2 == (${a}) + 2 == " + (a + 2)
|
|
println "a - 2 == (${a}) - 2 == " + (a - 2)
|
|
println "a * 2 == (${a}) * 2 == " + (a * 2)
|
|
println "a / 2 == (${a}) / 2 == " + (a / 2)
|
|
println "a ** 2 == (${a}) ** 2 == " + (a ** 2)
|
|
println "a % 2 == (${a}) % 2 == " + (a % 2)
|