modulus:5.

It chooses the representation 0 1 2 -2 -1 instead of 0,1,2,3,4.

vals:map(rat,[0,1,2,3,4];

for a in vals do for b in vals do for c in vals do for d in vals

do (p:matrix([a,b],[c,d]),

if equal(transpose(p).matrix([2,0],[0,3]).p,

ident(2) )

then print (p)); ]]>

Women on OKCupid found 80% of men of “below average” attractiveness:

http://blog.okcupid.com/index.php/your-looks-and-online-dating/

In light of this theorem, it is clear that the decline of marriage in American society is due to women; and yet we see endless articles and books blaming and shaming men for the decline of marriage, telling them to “man up.”

If women understood some mathematics, which intuitive articles like this makes easier, they might have reevaluated their choices so as not to end up with that skewed OKCupid situation. They are choosing themselves out of the matching pool.

]]>There is no need for (arcane) functions like funmake or matrixmap.

Also there is a standard function for identity matrices (ident(2) for a 2×2 one). And I prefer curly brackets for control blocks.

Then we get:

for a:0 thru 4 do

for b:0 thru 4 do

for c:0 thru 4 do

for d:0 thru 4 do

{

M: matrix([2,0],[0,3]),

P: matrix([a,b],[c,d]),

if mod(transpose(P).M.P, 5) = ident(2)

then print(P)

};