@@ -280,7 +280,7 @@ tape( 'the function returns expected values for job = scale (column-major)', fun
280280 2.0 , 0.25 , 0.25
281281 ] ) ;
282282
283- info = dgebal ( 'both ' , 3 , A , 1 , 3 , 0 , out , 1 , 0 , scale , 1 , 0 ) ;
283+ info = dgebal ( 'scale ' , 3 , A , 1 , 3 , 0 , out , 1 , 0 , scale , 1 , 0 ) ;
284284 t . strictEqual ( info , 0 , 'returns expected value' ) ;
285285 t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
286286 t . deepEqual ( A , expectedA , 'returns expected value' ) ;
@@ -688,3 +688,216 @@ tape( 'the function returns expected values for job = both with large values (co
688688 t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
689689 t . end ( ) ;
690690} ) ;
691+
692+ tape ( 'the function returns expected values for job = none (row-major) (negative strides)' , function test ( t ) {
693+ var expectedScale ;
694+ var expectedOut ;
695+ var expectedA ;
696+ var scale ;
697+ var info ;
698+ var out ;
699+ var A ;
700+
701+ A = new Float64Array ( [
702+ 9.0 , 8.0 , 7.0 ,
703+ 6.0 , 5.0 , 4.0 ,
704+ 3.0 , 2.0 , 1.0
705+ ] ) ;
706+ out = new Float64Array ( 2 ) ;
707+ scale = new Float64Array ( 3 ) ;
708+
709+ expectedOut = new Float64Array ( [ 2.0 , 0.0 ] ) ;
710+ expectedScale = new Float64Array ( [ 1.0 , 1.0 , 1.0 ] ) ;
711+ expectedA = new Float64Array ( [
712+ 9.0 , 8.0 , 7.0 ,
713+ 6.0 , 5.0 , 4.0 ,
714+ 3.0 , 2.0 , 1.0
715+ ] ) ;
716+
717+ info = dgebal ( 'none' , 3 , A , - 3 , - 1 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
718+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
719+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
720+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
721+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
722+ t . end ( ) ;
723+ } ) ;
724+
725+ tape ( 'the function returns expected values for job = none (column-major) (negative strides)' , function test ( t ) {
726+ var expectedScale ;
727+ var expectedOut ;
728+ var expectedA ;
729+ var scale ;
730+ var info ;
731+ var out ;
732+ var A ;
733+
734+ A = new Float64Array ( [
735+ 9.0 , 6.0 , 3.0 ,
736+ 8.0 , 5.0 , 2.0 ,
737+ 7.0 , 4.0 , 1.0
738+ ] ) ;
739+ out = new Float64Array ( 2 ) ;
740+ scale = new Float64Array ( 3 ) ;
741+
742+ expectedOut = new Float64Array ( [ 2.0 , 0.0 ] ) ;
743+ expectedScale = new Float64Array ( [ 1.0 , 1.0 , 1.0 ] ) ;
744+ expectedA = new Float64Array ( [
745+ 9.0 , 6.0 , 3.0 ,
746+ 8.0 , 5.0 , 2.0 ,
747+ 7.0 , 4.0 , 1.0
748+ ] ) ;
749+
750+ info = dgebal ( 'both' , 3 , A , - 1 , - 3 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
751+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
752+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
753+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
754+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
755+ t . end ( ) ;
756+ } ) ;
757+
758+ tape ( 'the function returns expected values for job = permutate (row-major) (negative strides)' , function test ( t ) {
759+ var expectedScale ;
760+ var expectedOut ;
761+ var expectedA ;
762+ var scale ;
763+ var info ;
764+ var out ;
765+ var A ;
766+
767+ A = new Float64Array ( [
768+ 4.0 , 0.0 , 3.0 ,
769+ 0.0 , 5.0 , 0.0 ,
770+ 2.0 , 0.0 , 1.0
771+ ] ) ;
772+ out = new Float64Array ( 2 ) ;
773+ scale = new Float64Array ( 3 ) ;
774+
775+ expectedOut = new Float64Array ( [ 1.0 , 0.0 ] ) ;
776+ expectedScale = new Float64Array ( [ 1.0 , 1.0 , 1.0 ] ) ;
777+
778+ expectedA = new Float64Array ( [
779+ 5.0 , 0.0 , 0.0 ,
780+ 0.0 , 4.0 , 3.0 ,
781+ 0.0 , 2.0 , 1.0
782+ ] ) ;
783+
784+ info = dgebal ( 'permutate' , 3 , A , - 3 , - 1 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
785+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
786+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
787+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
788+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
789+ t . end ( ) ;
790+ } ) ;
791+
792+ tape ( 'the function returns expected values for job = permutate (column-major) (negative strides)' , function test ( t ) {
793+ var expectedScale ;
794+ var expectedOut ;
795+ var expectedA ;
796+ var scale ;
797+ var info ;
798+ var out ;
799+ var A ;
800+
801+ A = new Float64Array ( [
802+ 4.0 , 0.0 , 2.0 ,
803+ 0.0 , 5.0 , 0.0 ,
804+ 3.0 , 0.0 , 1.0
805+ ] ) ;
806+ out = new Float64Array ( 2 ) ;
807+ scale = new Float64Array ( 3 ) ;
808+
809+ expectedOut = new Float64Array ( [ 1.0 , 0.0 ] ) ;
810+ expectedScale = new Float64Array ( [ 1.0 , 1.0 , 1.0 ] ) ;
811+ expectedA = new Float64Array ( [
812+ 5.0 , 0.0 , 0.0 ,
813+ 0.0 , 4.0 , 2.0 ,
814+ 0.0 , 3.0 , 1.0
815+ ] ) ;
816+
817+ info = dgebal ( 'permutate' , 3 , A , - 1 , - 3 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
818+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
819+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
820+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
821+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
822+ t . end ( ) ;
823+ } ) ;
824+
825+ tape ( 'the function returns expected values for job = scale (row-major) (negative strides)' , function test ( t ) {
826+ var expectedScale ;
827+ var expectedOut ;
828+ var expectedA ;
829+ var scale ;
830+ var info ;
831+ var out ;
832+ var A ;
833+
834+ A = new Float64Array ( [
835+ 16.0 , 16.0 , 16.0 ,
836+ 0.25 , 0.25 , 0.25 ,
837+ 0.25 , 0.25 , 0.25
838+ ] ) ;
839+
840+ A = new Float64Array ( [
841+ 0.25 , 0.25 , 0.25 ,
842+ 0.25 , 0.25 , 0.25 ,
843+ 16.0 , 16.0 , 16.0
844+ ] ) ;
845+
846+ out = new Float64Array ( 2 ) ;
847+ scale = new Float64Array ( 3 ) ;
848+
849+ expectedOut = new Float64Array ( [ 2.0 , 0.0 ] ) ;
850+ expectedScale = new Float64Array ( [ 0.125 , 0.125 , 1.0 ] ) ;
851+ expectedA = new Float64Array ( [
852+ 16.0 , 2.0 , 2.0 ,
853+ 2.0 , 0.25 , 0.25 ,
854+ 2.0 , 0.25 , 0.25
855+ ] ) ;
856+
857+ expectedA = new Float64Array ( [
858+ 0.25 , 0.25 , 2.0 ,
859+ 0.25 , 0.25 , 2.0 ,
860+ 2.0 , 2.0 , 16.0
861+ ] ) ;
862+
863+ info = dgebal ( 'scale' , 3 , A , - 3 , - 1 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
864+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
865+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
866+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
867+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
868+ t . end ( ) ;
869+ } ) ;
870+
871+ tape ( 'the function returns expected values for job = scale (column-major) (negative strides)' , function test ( t ) {
872+ var expectedScale ;
873+ var expectedOut ;
874+ var expectedA ;
875+ var scale ;
876+ var info ;
877+ var out ;
878+ var A ;
879+
880+ A = new Float64Array ( [
881+ 0.25 , 0.25 , 16.0 ,
882+ 0.25 , 0.25 , 16.0 ,
883+ 0.25 , 0.25 , 16.0
884+ ] ) ;
885+
886+ out = new Float64Array ( 2 ) ;
887+ scale = new Float64Array ( 3 ) ;
888+
889+ expectedOut = new Float64Array ( [ 2.0 , 0.0 ] ) ;
890+ expectedScale = new Float64Array ( [ 0.125 , 0.125 , 1.0 ] ) ;
891+ expectedA = new Float64Array ( [
892+ 0.25 , 0.25 , 2.0 ,
893+ 0.25 , 0.25 , 2.0 ,
894+ 2.0 , 2.0 , 16.0
895+ ] ) ;
896+
897+ info = dgebal ( 'scale' , 3 , A , - 1 , - 3 , 8 , out , - 1 , 1 , scale , - 1 , 2 ) ;
898+ t . strictEqual ( info , 0 , 'returns expected value' ) ;
899+ t . deepEqual ( out , expectedOut , 'returns expected value' ) ;
900+ t . deepEqual ( A , expectedA , 'returns expected value' ) ;
901+ t . deepEqual ( scale , expectedScale , 'returns expected value' ) ;
902+ t . end ( ) ;
903+ } ) ;
0 commit comments