@@ -901,3 +901,205 @@ tape( 'the function returns expected values for job = scale (column-major) (nega
901901 t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
902902 t . end ( ) ;
903903} ) ;
904+
905+ tape ( 'the function returns expected values for job = both (row-major) (negative strides)' , function test ( t ) {
906+ var expectedScale ;
907+ var expectedOut ;
908+ var expectedA ;
909+ var scale ;
910+ var info ;
911+ var out ;
912+ var A ;
913+
914+ A = new Float64Array ( [
915+ 4.0 , 0.0 , 100.0 ,
916+ 0.0 , 5.0 , 0.0 ,
917+ 2.0 , 0.0 , 1.0
918+ ] ) ;
919+ out = new Float64Array ( 2 ) ;
920+ scale = new Float64Array ( 3 ) ;
921+
922+ expectedOut = new Float64Array ( [ 1.0 , 0.0 ] ) ;
923+ expectedScale = new Float64Array ( [ 1.0 , 1.0 , 0.125 ] ) ;
924+
925+ expectedA = new Float64Array ( [
926+ 5.0 , 0.0 , 0.0 ,
927+ 0.0 , 4.0 , 12.5 ,
928+ 0.0 , 16.0 , 1.0
929+ ] ) ;
930+
931+ info = dgebal ( 'both' , 3 , A , - 3 , - 1 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
932+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
933+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
934+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
935+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
936+ t . end ( ) ;
937+ } ) ;
938+
939+ tape ( 'the function returns expected values for job = both (column-major) (negative strides)' , function test ( t ) {
940+ var expectedScale ;
941+ var expectedOut ;
942+ var expectedA ;
943+ var scale ;
944+ var info ;
945+ var out ;
946+ var A ;
947+
948+ A = new Float64Array ( [
949+ 4.0 , 0.0 , 2.0 ,
950+ 0.0 , 5.0 , 0.0 ,
951+ 100.0 , 0.0 , 1.0
952+ ] ) ;
953+ out = new Float64Array ( 2 ) ;
954+ scale = new Float64Array ( 3 ) ;
955+
956+ expectedOut = new Float64Array ( [ 1.0 , 0.0 ] ) ;
957+ expectedScale = new Float64Array ( [ 1.0 , 1.0 , 0.125 ] ) ;
958+ expectedA = new Float64Array ( [
959+ 5.0 , 0.0 , 0.0 ,
960+ 0.0 , 4.0 , 16.0 ,
961+ 0.0 , 12.5 , 1.0
962+ ] ) ;
963+
964+ info = dgebal ( 'both' , 3 , A , - 1 , - 3 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
965+
966+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
967+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
968+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
969+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
970+ t . end ( ) ;
971+ } ) ;
972+
973+ tape ( 'the function returns expected values for job = both with complex input (row-major) (negative strides)' , function test ( t ) {
974+ var expectedScale ;
975+ var expectedOut ;
976+ var expectedA ;
977+ var scale ;
978+ var info ;
979+ var out ;
980+ var A ;
981+
982+ A = new Float64Array ( [
983+ 3.0 , 0.0 , 0.0 ,
984+ 0.0 , 2.0 , 0.0 ,
985+ 0.0 , 1.0 , 1.0
986+ ] ) ;
987+
988+ out = new Float64Array ( 2 ) ;
989+ scale = new Float64Array ( 3 ) ;
990+
991+ expectedOut = new Float64Array ( [ 0.0 , 0.0 ] ) ;
992+ expectedScale = new Float64Array ( [ 2.0 , 1.0 , 0.0 ] ) ;
993+ expectedA = new Float64Array ( [
994+ 3.0 , 0.0 , 0.0 ,
995+ 0.0 , 2.0 , 0.0 ,
996+ 0.0 , 1.0 , 1.0
997+ ] ) ;
998+
999+ info = dgebal ( 'both' , 3 , A , - 3 , - 1 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
1000+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
1001+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
1002+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
1003+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
1004+ t . end ( ) ;
1005+ } ) ;
1006+
1007+ tape ( 'the function returns expected values for job = both with complex input (column-major) (negative strides)' , function test ( t ) {
1008+ var expectedScale ;
1009+ var expectedOut ;
1010+ var expectedA ;
1011+ var scale ;
1012+ var info ;
1013+ var out ;
1014+ var A ;
1015+
1016+ A = new Float64Array ( [
1017+ 3.0 , 0.0 , 0.0 ,
1018+ 0.0 , 2.0 , 1.0 ,
1019+ 0.0 , 0.0 , 1.0
1020+ ] ) ;
1021+ out = new Float64Array ( 2 ) ;
1022+ scale = new Float64Array ( 3 ) ;
1023+
1024+ expectedOut = new Float64Array ( [ 0.0 , 0.0 ] ) ;
1025+ expectedScale = new Float64Array ( [ 2.0 , 1.0 , 0.0 ] ) ;
1026+
1027+ expectedA = new Float64Array ( [
1028+ 3.0 , 0.0 , 0.0 ,
1029+ 0.0 , 2.0 , 1.0 ,
1030+ 0.0 , 0.0 , 1.0
1031+ ] ) ;
1032+
1033+ info = dgebal ( 'both' , 3 , A , - 1 , - 3 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
1034+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
1035+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
1036+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
1037+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
1038+ t . end ( ) ;
1039+ } ) ;
1040+
1041+ tape ( 'the function returns expected values for job = both with complex input (row-major) (negative strides)' , function test ( t ) {
1042+ var expectedScale ;
1043+ var expectedOut ;
1044+ var expectedA ;
1045+ var scale ;
1046+ var info ;
1047+ var out ;
1048+ var A ;
1049+
1050+ A = new Float64Array ( [
1051+ 7.0 , 0.0 , 6.0 ,
1052+ 5.0 , 4.0 , 3.0 ,
1053+ 2.0 , 0.0 , 1.0
1054+ ] ) ;
1055+ out = new Float64Array ( 2 ) ;
1056+ scale = new Float64Array ( 3 ) ;
1057+
1058+ expectedOut = new Float64Array ( [ 2.0 , 1.0 ] ) ;
1059+ expectedScale = new Float64Array ( [ 1.0 , 0.5 , 1.0 ] ) ;
1060+ expectedA = new Float64Array ( [
1061+ 7.0 , 3.0 , 0.0 ,
1062+ 4.0 , 1.0 , 0.0 ,
1063+ 5.0 , 1.5 , 4.0
1064+ ] ) ;
1065+ info = dgebal ( 'both' , 3 , A , - 3 , - 1 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
1066+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
1067+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
1068+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
1069+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
1070+ t . end ( ) ;
1071+ } ) ;
1072+
1073+ tape ( 'the function returns expected values for job = both with complex input (column-major) (negative strides)' , function test ( t ) {
1074+ var expectedScale ;
1075+ var expectedOut ;
1076+ var expectedA ;
1077+ var scale ;
1078+ var info ;
1079+ var out ;
1080+ var A ;
1081+
1082+ A = new Float64Array ( [
1083+ 7.0 , 5.0 , 2.0 ,
1084+ 0.0 , 4.0 , 0.0 ,
1085+ 6.0 , 3.0 , 1.0
1086+ ] ) ;
1087+ out = new Float64Array ( 2 ) ;
1088+ scale = new Float64Array ( 3 ) ;
1089+
1090+ expectedOut = new Float64Array ( [ 2.0 , 1.0 ] ) ;
1091+ expectedScale = new Float64Array ( [ 1.0 , 0.5 , 1.0 ] ) ;
1092+
1093+ expectedA = new Float64Array ( [
1094+ 7.0 , 4.0 , 5.0 ,
1095+ 3.0 , 1.0 , 1.5 ,
1096+ 0.0 , 0.0 , 4.0
1097+ ] ) ;
1098+
1099+ info = dgebal ( 'both' , 3 , A , - 1 , - 3 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
1100+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
1101+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
1102+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
1103+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
1104+ t . end ( ) ;
1105+ } ) ;
0 commit comments