обертывание кода в модуле

Следующий код выполняется незаметно

wave = HaarWavelet[];
type = "PrimalLowpass";

h = WaveletFilterCoefficients[
  wave, type, 
  WorkingPrecision -> \[Infinity]
];

h = Flatten[
    Take[h, 
        Range[1, Length[h]], 
        Table[2, {Length[h]}]
        ]
    ]

, но при его заключении в Module некоторые вещи идут наперекосяк. Рассмотрим функцию

    getWaveletFilter[wave_, type_]:=
    Module[{filter}, (* treated as local *)
      filter = WaveletFilterCoefficients[
        wave, type, WorkingPrecision -> \[Infinity]
      ]

      filter = Flatten[
          Take[filter, 
              Range[1, Length[filter]], 
              Table[2, {Length[filter]}]
              ]
          ]

      filter
    ]

. Я бы хотел getWaveletFilter [HaarWavelet [], "PrimalHighpass"] вернуться

{1/2, -1/2}

Вместо Mathematica есть всевозможные жалобы. Есть предложения?

0
задан Ryogi 11 February 2012 в 19:08
поделиться