11 my $x = Bit::Vector->new(128);
12 my $y = Bit::Vector->new(128);
13 my $z = Bit::Vector->new(128);
15 my $u = Bit::Vector->new(128);
16 my $v = Bit::Vector->new(128);
17 my $w = Bit::Vector->new(128);
19 my($uu,$vv,$ww,$xx,$yy,$zz);
23 my($a,$b,$c,$d,$e) = @_;
27 $t[0] = [ $a, 1, 0, 0 ];
28 $t[1] = [ $b, 0, 1, 0 ];
33 # printf("\n[ %6d, %6d, %6d, %6d ]\n", @{$t[0]});
44 $t[$i+2][1] = $t[$i][1] - $t[$i+1][1] * $q;
45 $t[$i+2][2] = $t[$i][2] - $t[$i+1][2] * $q;
47 # printf("[ %6d, %6d, %6d, %6d ]\n", @{$t[$i+1]});
51 # printf("[ %6d, %6d, %6d, %6d ]\n", @{$t[$i+1]});
53 # print "\nGCD1( $t[0][0], $t[1][0] ) = ", $t[$i][0], "\n";
56 {print "ok $n\n";} else {print "not ok $n\n";}
65 # printf("GCD2( %s, %s ) = %s\n", $xx, $yy, $zz);
68 {print "ok $n\n";} else {print "not ok $n\n";}
80 # printf("GCD3( %s, %s ) = %s\n", $xx, $yy, $zz);
83 {print "ok $n\n";} else {print "not ok $n\n";}
92 # printf("\n%d * %d + %d * %d = %d\n",
93 # $t[$i][1], $t[0][0],
94 # $t[$i][2], $t[1][0],
95 # $t[$i][1] * $t[0][0] +
96 # $t[$i][2] * $t[1][0]);
98 if (($t[$i][1] * $t[0][0] + $t[$i][2] * $t[1][0]) == $c)
99 {print "ok $n\n";} else {print "not ok $n\n";}
103 {print "ok $n\n";} else {print "not ok $n\n";}
107 {print "ok $n\n";} else {print "not ok $n\n";}
110 # printf("%s * %s + %s * %s = %s\n\n", $vv, $xx, $ww, $yy, $uu);
113 {print "ok $n\n";} else {print "not ok $n\n";}
117 {print "ok $n\n";} else {print "not ok $n\n";}
121 {print "ok $n\n";} else {print "not ok $n\n";}
125 gcd( 2322, 0, 2322, 1, 0 );
126 gcd( 0, 654, 654, 0, 1 );
128 gcd( 2322, 654, 6, 20, -71 );
129 gcd( 2322, -654, 6, 20, 71 );
130 gcd( -2322, 654, -6, 20, 71 );
131 gcd( -2322, -654, -6, 20, -71 );
133 gcd( 654, 2322, 6, -71, 20 );
134 gcd( 654, -2322, -6, 71, 20 );
135 gcd( -654, 2322, 6, 71, 20 );
136 gcd( -654, -2322, -6, -71, 20 );
138 gcd( 12345, 54321, 3, 3617, -822 );
139 gcd( 12345, -54321, 3, 3617, 822 );
140 gcd( -12345, 54321, -3, 3617, 822 );
141 gcd( -12345, -54321, -3, 3617, -822 );
143 gcd( 54321, 12345, 3, -822, 3617 );
144 gcd( 54321, -12345, -3, 822, 3617 );
145 gcd( -54321, 12345, 3, 822, 3617 );
146 gcd( -54321, -12345, -3, -822, 3617 );