Annotation of 43BSD/ucb/fp/dft.fp, revision 1.1.1.1

1.1       root        1: # Discrete Fourier Transform
                      2: # Usage: dft : b
                      3: # Where "b" is the input vector
                      4: 
                      5: {pi    %3.141592653589793}
                      6: 
                      7: {wN    1}
                      8: {p     2}
                      9: {r     2}
                     10: {B     1}
                     11: 
                     12: {realCDiv      &/ @ distr @ reverse}
                     13: 
                     14: {distMult &* @ distl}
                     15: 
                     16: {iota0 apndl @ [%0,
                     17:                 iota @ - @ [id,%1]
                     18:                ]
                     19: }
                     20: 
                     21: {oddp  = @  [%1 , mod @ [id,%2]]}
                     22: 
                     23: {cAdd          &+ @ trans}
                     24:        
                     25: {reCxIp        !cAdd @ &&* @ &distl @ trans}
                     26: 
                     27: {cExp  [cos , sin]}
                     28: 
                     29: {N     length @ 1}
                     30: 
                     31: {w     cExp @  / @ [!* @  [%-2, pi, p],
                     32:                     wN
                     33:                    ]
                     34: }
                     35: 
                     36: {ws    cExp @  + @ [pi,
                     37:                     / @ [!* @  [%-2, pi, p],
                     38:                            wN
                     39:                         ]
                     40:                    ]
                     41: 
                     42: }
                     43: 
                     44: 
                     45: {wFactors      &(oddp @ 3 ->
                     46:                       ws @ [1,* @ tl];
                     47:                       w  @ [1,* @ tl]) @
                     48:                &apndl @ 
                     49:                distl @
                     50:                [N,
                     51:                 distl @ [r, iota0 @ N]
                     52:                ]
                     53: }
                     54: 
                     55: 
                     56: 
                     57: 
                     58: 
                     59: {dftPt realCDiv  @  [N,
                     60:                     reCxIp @ [B, wFactors]
                     61:                     ]
                     62: }
                     63:   
                     64: {dft   &dftPt @ distl @ [id,iota0 @ length]}
                     65: 
                     66: {b %<1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 0.5>}
                     67: 
                     68: {d %<0.0, 0.5, 1.0, 1.0>}
                     69: 
                     70: {e %<
                     71: 1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 0.5, 1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 0.5,
                     72: 1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 0.5, 1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 0.5>}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.