Re: [Factor-talk] supremum

2017-06-21 Thread John Benediktsson
Maybe contribute a `?supremum` to sequences.extras? You could define it to return `f` on empty sequence and ignore `f` elements? If it's useful we could change supremum or move to core. Add infimum also. And note that we use sift supremum in at least one place

Re: [Factor-talk] supremum

2017-06-21 Thread Doug Coleman
I'm not sure what else is in your vector, but you could return -1 instead of f, or some null object for which you define a comparison operator, or just sift (it's probably fast enough even on large arrays). sift is removing the first element here (vector looks like { f 1 2 3 4 5 ... } 10,000,000

Re: [Factor-talk] supremum

2017-06-21 Thread Alexander Ilin
In that case the behavior would be identical to the current one. 21.06.2017, 18:55, "Doug Coleman" :What should supremum do if you have no elements in the sequence? numpy throws an error too: In [1]: import numpy as npIn [2]: np.max(np.array([])) ValueError: zero-size array

Re: [Factor-talk] supremum

2017-06-21 Thread Alexander Ilin
You are correct. I'm kind of adding the rule that `f` is smaller than anything else in terms of `math.order:max`.I also dislike the idea of making a copy of an array in case there are no `f` elements, which `sift` would do.I'm dealing with pretty big arrays here, so anything postponing the

Re: [Factor-talk] supremum

2017-06-21 Thread Doug Coleman
What should supremum do if you have no elements in the sequence? numpy throws an error too: In [1]: import numpy as np In [2]: np.max(np.array([])) ValueError: zero-size array to reduction operation maximum which has no identity On Wed, Jun 21, 2017 at 10:52 AM Alex Vondrak

Re: [Factor-talk] supremum

2017-06-21 Thread Alex Vondrak
Technically that case would be a matter of `supremum` handling empty arrays, not `f` elements per se. On Jun 21, 2017 8:48 AM, "Alexander Ilin" wrote: ``` { f f f f } sift supremum -> error is thrown ``` 21.06.2017, 18:44, "Alex Vondrak" : Or you could

Re: [Factor-talk] supremum

2017-06-21 Thread Alexander Ilin
```{ f f f f } sift supremum-> error is thrown``` 21.06.2017, 18:44, "Alex Vondrak" :Or you could call `sift supremum`: http://docs.factorcode.org/content/word-sift,sequences.html Might be instructive to give the codebase a search, see how often that pattern is used. (Can't do

Re: [Factor-talk] supremum

2017-06-21 Thread Alex Vondrak
Or you could call `sift supremum`: http://docs.factorcode.org/content/word-sift,sequences.html Might be instructive to give the codebase a search, see how often that pattern is used. (Can't do it myself right now - on mobile.) On Jun 21, 2017 8:39 AM, "Alexander Ilin" wrote:

[Factor-talk] supremum

2017-06-21 Thread Alexander Ilin
Hello! How would you like if `supremum` tolerated the `f` elements? Now: ``` { f 0 1 2 } supremum -> error is thrown { f f f f } supremum -> error is thrown ``` Proposition: ``` { f 0 1 2 } supremum -> 2 { f f f f } supremum -> f ``` Current code: ``` : supremum (