nl_tokens: forwardSHT implements the forward SHT on data defined over the sphere
pl_tokens: function ( N , data , CART_OR_SPH , DIRECT_OR_PINV ) { var Ndirs = <mask> . length , Nsh = ( N + 1 ) * ( N + 1 ) ; var invY_N ; var mag = [ , ] ; if ( Nsh > Ndirs ) { console . log ( "The SHT degree is too high for the number of data points" ) } // Convert cartesian to spherical if needed if ( CART_OR_SPH == 0 ) data = convertCart2Sph ( data ) ; for ( var i = 0 ; i < data . length ; i ++ ) { mag [ i ] = data [ i ] [ 2 ] ; } // SH sampling matrix Y_N = computeRealSH ( N , data ) ; // Direct SHT if ( DIRECT_OR_PINV == 0 ) { invY_N = numeric . mul ( 1 / Ndirs , Y_N ) ; } else { invY_N = pinv_direct ( numeric . transpose ( Y_N ) ) ; } // Perform SHT var coeffs = numeric . dotMV ( invY_N , mag ) ; return coeffs ; }