Thank you very much, its very interesting, it loads very fast, but the
speed of f is the same like initial programm: ~0.12-13sec.
That if why I suppose it is not possible to make it faster, but it is
also very good result.

Regards,


On Wed, Dec 14, 2011 at 3:56 PM, Raul Miller <[email protected]> wrote:
> F is faster than f, for me:
>
>   F=: < (~.m) {~ ((}.m) {./. l)&I.
>
> Note that this assumes that m and l are in sorted order and that pip
> '0.0.0.0' is not the second element of m (but I think the code already
> makes these assumptions).
>
> And G is faster than F, for me:
>
>   G=: 2 | (,(~.}.m) ,.~ (}.m) {./. l) I. ]
>
>   (f -: F) ips
> 1
>   (f -: G) ips
> 1
>
> --
> Raul
>
> On Wed, Dec 14, 2011 at 5:14 AM, Alexander Epifanov <[email protected]> wrote:
>> Hello again,
>> Here my optimized version with ints, its 1.5 faster then float solution.
>> http://dl.dropbox.com/u/34917039/ip.j
>>
>> The main thing: it is much faster than K!
>>
>> Could you let me know, is it possible to optimize time of "f" function?
>> I tryed to represent IP like 4 ints: 192 168 1 1, but this solution
>> works much slower.
>>
>> ips.txt: file with ip addresses
>> ipr.txt: file with ip ranges: ip,ip
>>
>> And the other thing I cannot understand:
>>   5?5
>> 4 1 0 2 3
>>   10?5
>> |domain error
>> |   10    ?5
>> ???
>>
>> Thank you,
>>
>> On Fri, Dec 9, 2011 at 10:53 PM, Alexander Epifanov <[email protected]> 
>> wrote:
>>> Hello,
>>>
>>> On Fri, Dec 9, 2011 at 3:11 PM, Raul Miller <[email protected]> wrote:
>>>> On Fri, Dec 9, 2011 at 7:50 AM, Alexander Epifanov 
>>>> <[email protected]>wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I made my first application on J.
>>>>> I was surprised that it works faster than K:
>>>>>
>>>>> pip =: 256 #. x:@:".;._2@:,&'.'
>>>>> ips =: pip"1 (_1&}.;._2 (1!:1<'ips.txt'))
>>>>> iprs =: |:pip;._1 "1 (','&,)"1 (_1&}.;._2 (1!:1<'ipr.txt'))
>>>>> i =: /:{.iprs
>>>>> l =: i{{.iprs
>>>>> r =: i{{:iprs
>>>>> m =: 0,(>./ @: {.&r)"0 (1+i.#l)
>>>>> f =: <: m {~ I.~&l
>>>>> 6!:2 'f"1 ips'
>>>>>
>>>>> But I suppose that it could be better:
>>>>> 1) It uses x:, but IP address could fill int, I found that J does not
>>>>> support unsigned int (K also).
>>>>> But unfortunately, I cannot find the way in J how to convert 4 numbers
>>>>> into signed int i J.
>>>>>
>>>>
>>>> Why are you concerned about data representation type?  This works fine:
>>>>
>>>>   pip =: 256 #. ".;._2@:,&'.'
>>>>
>>>>
>>> Yes, it works, but 3!:0 pip'192.168.1.1' - float, But I suppose that
>>> int would be faster, I would like to compare.
>>>
>>>>>
>>>>> 2) How is it possible to change m =: 0,(>./ @: {.&r)"0 (1+i.#l)
>>>>> without right brackets? I expected something like ... "0 @: 1 + i.#l,
>>>>> but it does not work. I think that "0 +&1 i.#l is not best solution.
>>>>>
>>>>
>>>> I do not have any ipr.txt so I do not know what domain m is intended for.
>>>>  I could guess, but right now I do not understand your question.
>>>>
>>>>
>>>>> 3) ips =: pip"1 (_1&}.;._2 (1!:1<'ips.txt')) is very slow, in pip
>>>>> function, is it possible to make it faster?
>>>>>
>>>>
>>>> Getting rid of x: should make pip faster.  I also suspect you want
>>>> something like this:
>>>>
>>>>   ips=: pip;._2 (1!:1 <'ips.txt') -. CR
>>> Thanks! it works twice faster.
>>>>
>>>> Or:
>>>>
>>>>   ips=: 256 #. 0&".;._2 ' ' (I.@e.&('.',CR)@])} 1!:1<'ips.txt'
>>>>
>>>>
>>>>> 4) I cannot find in VOC is I. binary search or something like that?
>>>>>
>>>>
>>>> Typically, yes.
>>>>
>>>> --
>>>> Raul
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>>
>>>
>>> --
>>> Regards,
>>>   Alexander.
>>
>>
>>
>> --
>> Regards,
>>   Alexander.
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



-- 
Regards,
  Alexander.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to