|
16 | 16 | * limitations under the License.
|
17 | 17 | */
|
18 | 18 |
|
19 |
| -/* eslint-disable array-element-newline */ |
| 19 | +/* eslint-disable array-element-newline, max-lines */ |
20 | 20 |
|
21 | 21 | 'use strict';
|
22 | 22 |
|
@@ -1103,3 +1103,149 @@ tape( 'the function returns expected values for job = both with complex input (c
|
1103 | 1103 | t.deepEqual( scale, expectedScale, 'returns expected value' );
|
1104 | 1104 | t.end();
|
1105 | 1105 | });
|
| 1106 | + |
| 1107 | +tape( 'the function returns expected values for job = scale with zero norm (row-major) (negative strides)', function test( t ) { |
| 1108 | + var expectedScale; |
| 1109 | + var expectedOut; |
| 1110 | + var expectedA; |
| 1111 | + var scale; |
| 1112 | + var info; |
| 1113 | + var out; |
| 1114 | + var A; |
| 1115 | + |
| 1116 | + A = new Float64Array([ |
| 1117 | + 6.0, 0.0, 3.0, |
| 1118 | + 5.0, 0.0, 2.0, |
| 1119 | + 4.0, 0.0, 1.0 |
| 1120 | + ]); |
| 1121 | + out = new Float64Array( 2 ); |
| 1122 | + scale = new Float64Array( 3 ); |
| 1123 | + |
| 1124 | + expectedOut = new Float64Array( [ 2.0, 0.0 ] ); |
| 1125 | + expectedScale = new Float64Array( [ 1.0, 1.0, 1.0 ] ); |
| 1126 | + expectedA = new Float64Array([ |
| 1127 | + 6.0, 0.0, 3.0, |
| 1128 | + 5.0, 0.0, 2.0, |
| 1129 | + 4.0, 0.0, 1.0 |
| 1130 | + ]); |
| 1131 | + |
| 1132 | + info = dgebal( 'scale', 3, A, -3, -1, 8, out, -1, 1, scale, -1, 2 ); |
| 1133 | + t.strictEqual( info, 0, 'returns expected value' ); |
| 1134 | + t.deepEqual( out, expectedOut, 'returns expected value' ); |
| 1135 | + t.deepEqual( A, expectedA, 'returns expected value' ); |
| 1136 | + t.deepEqual( scale, expectedScale, 'returns expected value' ); |
| 1137 | + t.end(); |
| 1138 | +}); |
| 1139 | + |
| 1140 | +tape( 'the function returns expected values for job = scale with zero norm (column-major) (negative strides)', function test( t ) { |
| 1141 | + var expectedScale; |
| 1142 | + var expectedOut; |
| 1143 | + var expectedA; |
| 1144 | + var scale; |
| 1145 | + var info; |
| 1146 | + var out; |
| 1147 | + var A; |
| 1148 | + |
| 1149 | + A = new Float64Array([ |
| 1150 | + 1.0, 2.0, 3.0, |
| 1151 | + 0.0, 0.0, 0.0, |
| 1152 | + 4.0, 5.0, 6.0 |
| 1153 | + ]); |
| 1154 | + A = new Float64Array([ |
| 1155 | + 6.0, 5.0, 4.0, |
| 1156 | + 0.0, 0.0, 0.0, |
| 1157 | + 3.0, 2.0, 1.0 |
| 1158 | + ]); |
| 1159 | + out = new Float64Array( 2 ); |
| 1160 | + scale = new Float64Array( 3 ); |
| 1161 | + |
| 1162 | + expectedOut = new Float64Array( [ 2.0, 0.0 ] ); |
| 1163 | + expectedScale = new Float64Array( [ 1.0, 1.0, 1.0 ] ); |
| 1164 | + expectedA = new Float64Array([ |
| 1165 | + 1.0, 2.0, 3.0, |
| 1166 | + 0.0, 0.0, 0.0, |
| 1167 | + 4.0, 5.0, 6.0 |
| 1168 | + ]); |
| 1169 | + expectedA = new Float64Array([ |
| 1170 | + 6.0, 5.0, 4.0, |
| 1171 | + 0.0, 0.0, 0.0, |
| 1172 | + 3.0, 2.0, 1.0 |
| 1173 | + ]); |
| 1174 | + |
| 1175 | + info = dgebal( 'scale', 3, A, -1, -3, 8, out, -1, 1, scale, -1, 2 ); |
| 1176 | + |
| 1177 | + t.strictEqual( info, 0, 'returns expected value' ); |
| 1178 | + t.deepEqual( out, expectedOut, 'returns expected value' ); |
| 1179 | + t.deepEqual( A, expectedA, 'returns expected value' ); |
| 1180 | + t.deepEqual( scale, expectedScale, 'returns expected value' ); |
| 1181 | + t.end(); |
| 1182 | +}); |
| 1183 | + |
| 1184 | +tape( 'the function returns expected values for job = scale with small values (row-major) (negative strides)', function test( t ) { |
| 1185 | + var expectedScale; |
| 1186 | + var expectedOut; |
| 1187 | + var expectedA; |
| 1188 | + var scale; |
| 1189 | + var info; |
| 1190 | + var out; |
| 1191 | + var A; |
| 1192 | + |
| 1193 | + A = new Float64Array([ |
| 1194 | + 4.0e4, 2.0, 1.0, 4.0e-4, |
| 1195 | + 3.0e4, 2.0, 1.0, 3.0e-4, |
| 1196 | + 2.0e4, 2.0, 1.0, 2.0e-4, |
| 1197 | + 1.0e4, 2.0, 1.0, 1.0e-4 |
| 1198 | + ]); |
| 1199 | + out = new Float64Array( 2 ); |
| 1200 | + scale = new Float64Array( 4 ); |
| 1201 | + |
| 1202 | + expectedOut = new Float64Array( [ 3.0, 0.0 ] ); |
| 1203 | + expectedScale = new Float64Array( [ 1.0, 128.0, 128.0, 4096.0 ] ); |
| 1204 | + expectedA = new Float64Array([ |
| 1205 | + 4.0e4, 2.56e2, 1.28e2, 1.6384, |
| 1206 | + 2.34375e2, 2.0, 1.0, 9.6e-3, |
| 1207 | + 1.5625e2, 2.0, 1.0, 6.4e-3, |
| 1208 | + 2.44140625, 6.25e-2, 3.125e-2, 1.0e-4 |
| 1209 | + ]); |
| 1210 | + |
| 1211 | + info = dgebal( 'scale', 4, A, -4, -1, 15, out, -1, 1, scale, -1, 3 ); |
| 1212 | + t.strictEqual( info, 0, 'returns expected value' ); |
| 1213 | + t.deepEqual( out, expectedOut, 'returns expected value' ); |
| 1214 | + t.deepEqual( A, expectedA, 'returns expected value' ); |
| 1215 | + t.deepEqual( scale, expectedScale, 'returns expected value' ); |
| 1216 | + t.end(); |
| 1217 | +}); |
| 1218 | + |
| 1219 | +tape( 'the function returns expected values for job = scale with small values (column-major)', function test( t ) { |
| 1220 | + var expectedScale; |
| 1221 | + var expectedOut; |
| 1222 | + var expectedA; |
| 1223 | + var scale; |
| 1224 | + var info; |
| 1225 | + var out; |
| 1226 | + var A; |
| 1227 | + |
| 1228 | + A = new Float64Array([ |
| 1229 | + 4.0e4, 3.0e4, 2.0e4, 1.0e4, |
| 1230 | + 2.0, 2.0, 2.0, 2.0, |
| 1231 | + 1.0, 1.0, 1.0, 1.0, |
| 1232 | + 4.0e-4, 3.0e-4, 2.0e-4, 1.0e-4 |
| 1233 | + ]); |
| 1234 | + out = new Float64Array( 2 ); |
| 1235 | + scale = new Float64Array( 4 ); |
| 1236 | + |
| 1237 | + expectedOut = new Float64Array( [ 3.0, 0.0 ] ); |
| 1238 | + expectedScale = new Float64Array( [ 1.0, 128.0, 128.0, 4096.0 ] ); |
| 1239 | + expectedA = new Float64Array([ |
| 1240 | + 4.0e4, 2.34375e2, 1.5625e2, 2.44140625, |
| 1241 | + 2.56e2, 2.0, 2.0, 6.25e-2, |
| 1242 | + 1.28e2, 1.0, 1.0, 3.125e-2, |
| 1243 | + 1.6384, 9.6e-3, 6.4e-3, 1.0e-4 |
| 1244 | + ]); |
| 1245 | + info = dgebal( 'scale', 4, A, -1, -4, 15, out, -1, 1, scale, -1, 3 ); |
| 1246 | + t.strictEqual( info, 0, 'returns expected value' ); |
| 1247 | + t.deepEqual( out, expectedOut, 'returns expected value' ); |
| 1248 | + t.deepEqual( A, expectedA, 'returns expected value' ); |
| 1249 | + t.deepEqual( scale, expectedScale, 'returns expected value' ); |
| 1250 | + t.end(); |
| 1251 | +}); |
0 commit comments