> I think [complexity] info should be added in the library documentation.

+1

- Julius

On Tue, Mar 20, 2018 at 5:26 AM, Stéphane Letz <l...@grame.fr> wrote:
> ba.take ==> complexity O(n^2)
>
> I think that this kind of info should be added in the library documentation.
>
> And also as a general rule in the « Contributing » section of 
> https://github.com/grame-cncm/faustlibraries/blob/master/README.md, to push 
> library writers to document this kind of things.
>
> Stéphane
>
>
>> Le 20 mars 2018 à 04:32, Yann Orlarey <orla...@grame.fr> a écrit :
>>
>> HI,
>>
>> I did some tests and I don't see any problem with fi.fir(), it supports very 
>> large lists. Here is the test file I used:
>>
>> // ------- fir500.dsp ------
>>
>> import("stdfaust.lib");
>>
>> process = fi.fir((
>>     1,2,3,4,5,6,7,8,9,10,
>>     ...48 copies...
>>     1,2,3,4,5,6,7,8,9,10));
>>
>> //---------------------------------
>>
>> time faust fir500.dsp -o /dev/null
>>
>> real  0m0.446s
>> user  0m0.375s
>> sys   0m0.030s
>>
>>
>> If instead, I use the second code you mentioned
>>
>> // ------- fur500.dsp ------
>>
>> import("stdfaust.lib");
>>
>> fur(coeffs) = _ <: par(i, 500, @(i) * ba.take(i + 1, coeffs)) :> _;
>>
>> process = fur((
>>     1,2,3,4,5,6,7,8,9,10,
>>     ...48 copies...
>>     1,2,3,4,5,6,7,8,9,10));
>>
>> //---------------------------------
>>
>> The compilation will take a very long time because ba.take() is really not 
>> the way to go in this case (complexity O(n^2)). Here are the results I get:
>>
>> time faust fur500.dsp -o /dev/null
>>
>> real  1m18.270s
>> user  1m16.947s
>> sys   0m0.900s
>>
>> The difference is enormous (x170)!
>>
>> If in your case you don't see any difference of performances between the 
>> two, then there is a problem with the fi.fir implementation you are using.
>>
>> Can you try with the latest version of Faust (version 2.5.25)?
>>
>> Cheers
>>
>> Yann
>>
>>
>>
>>
>>
>> 2018-03-19 15:01 GMT-07:00 Oliver Larkin via Faudiostream-users 
>> <faudiostream-users@lists.sourceforge.net>:
>> depending on what faust version you are using, a foreign function might 
>> help. I had to do this to do a convolution in my tambura synthesiser for 
>> exactly the same reason
>>
>> https://github.com/olilarkin/Tambura/blob/master/bridgeIR.dsp
>>
>> https://github.com/olilarkin/Tambura/blob/master/bridgeIR.h
>>
>>
>> it would be great if faust’s FIR didn’t bork like this
>>
>> oli
>>
>>
>>> On 19 Mar 2018, at 21:32, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com> 
>>> wrote:
>>>
>>> Hi again!
>>>
>>> Thank you for all your tips!
>>>
>>>> I suggest placing all of your coefficients into a large parallel signal 
>>>> bank:
>>>>
>>>> coeffs = (b0, b1, b2, ..., b511); // FIR filter coefficients for length 512
>>>>
>>>> and then use par() etc.
>>>
>>> I tried both of these:
>>>
>>> process = fi.fir(coeffs);
>>>
>>> process = _ <: par(i, 512, @(i) * ba.take(i + 1, coeffs)) :> _;
>>>
>>> Which, unfortunately, both suffer from the same problem. Did I got the 
>>> suggestion right?
>>>
>>>> You can set unlimited time by adding
>>>> -t 0
>>>> to your compile command.
>>>
>>> I am currently trying this.
>>>
>>>> Interesting ! Do you have some code to show? Is is part of an official 
>>>> JULIA ==> Faust project?
>>>
>>> No, it isn't an official project. I just design some filters using DSP.jl 
>>> then I try to generate Faust code that implements them. I just open a file 
>>> for writing and I fill it with Faust code. I guess I can cook a few minimal 
>>> examples to share, I cannot share my code right away as it is sort of 
>>> confidential.
>>>
>>> On Mon, 19 Mar, 2018 at 8:20 AM, Stéphane Letz <l...@grame.fr> wrote:
>>>>
>>>>  Le 18 mars 2018 à 23:06, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com
>>>> > a écrit :
>>>>
>>>>  Hi there!
>>>>
>>>>  I currently have some Julia code producing 512 taps for an FIR filter.
>>>>
>>>>
>>>> Interesting ! Do you have some code to show? Is is part of an official 
>>>> JULIA ==> Faust project?
>>>>
>>>> Stéphane
>>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! 
>>> http://sdm.link/slashdot_______________________________________________
>>> Faudiostream-users mailing list
>>> Faudiostream-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Faudiostream-users mailing list
>> Faudiostream-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! 
>> http://sdm.link/slashdot_______________________________________________
>> Faudiostream-users mailing list
>> Faudiostream-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Faudiostream-users mailing list
> Faudiostream-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users



-- 
Julius O. Smith III <j...@ccrma.stanford.edu>
Professor of Music and, by courtesy, Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to