@@ -2,13 +2,14 @@ import { rightArithShiftBigNumber } from '../../utils/bignumber/bitwise.js'
22import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js'
33import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js'
44import { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js'
5+ import { createMatAlgo15xAs } from '../../type/matrix/utils/matAlgo15xAs.js'
56import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js'
67import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js'
78import { createMatAlgo08xS0Sid } from '../../type/matrix/utils/matAlgo08xS0Sid.js'
89import { factory } from '../../utils/factory.js'
910import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js'
10- import { createUseMatrixForArrayScalar } from './useMatrixForArrayScalar.js'
1111import { rightArithShiftNumber } from '../../plain/number/index.js'
12+ import { clone , deepMap } from '../../utils/array.js'
1213
1314const name = 'rightArithShift'
1415const dependencies = [
@@ -27,8 +28,8 @@ export const createRightArithShift = /* #__PURE__ */ factory(name, dependencies,
2728 const matAlgo10xSids = createMatAlgo10xSids ( { typed, DenseMatrix } )
2829 const matAlgo11xS0s = createMatAlgo11xS0s ( { typed, equalScalar } )
2930 const matAlgo14xDs = createMatAlgo14xDs ( { typed } )
31+ const matAlgo15xAs = createMatAlgo15xAs ( )
3032 const matrixAlgorithmSuite = createMatrixAlgorithmSuite ( { typed, matrix, concat } )
31- const useMatrixForArrayScalar = createUseMatrixForArrayScalar ( { typed, matrix } )
3233
3334 /**
3435 * Bitwise right arithmetic shift of a value x by y number of bits, `x >> y`.
@@ -78,6 +79,14 @@ export const createRightArithShift = /* #__PURE__ */ factory(name, dependencies,
7879 return matAlgo14xDs ( x , y , self , false )
7980 } ) ,
8081
82+ 'Array, number | BigNumber' : typed . referToSelf ( self => ( x , y ) => {
83+ // check scalar
84+ if ( equalScalar ( y , 0 ) ) {
85+ return clone ( x )
86+ }
87+ return matAlgo15xAs ( x , y , self , false )
88+ } ) ,
89+
8190 'number | BigNumber, SparseMatrix' : typed . referToSelf ( self => ( x , y ) => {
8291 // check scalar
8392 if ( equalScalar ( x , 0 ) ) {
@@ -92,9 +101,15 @@ export const createRightArithShift = /* #__PURE__ */ factory(name, dependencies,
92101 return zeros ( y . size ( ) , y . storage ( ) )
93102 }
94103 return matAlgo14xDs ( y , x , self , true )
104+ } ) ,
105+ 'number | BigNumber, Array' : typed . referToSelf ( self => ( x , y ) => {
106+ // check scalar
107+ if ( equalScalar ( x , 0 ) ) {
108+ return deepMap ( y , ( ) => x )
109+ }
110+ return matAlgo15xAs ( y , x , self , true )
95111 } )
96112 } ,
97- useMatrixForArrayScalar ,
98113 matrixAlgorithmSuite ( {
99114 SS : matAlgo08xS0Sid ,
100115 DS : matAlgo01xDSid ,
0 commit comments