Annotation of 42BSD/ucb/fp/dft.fp, revision 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.