freenode/#lisp - IRC Chatlog
Search
22:26:37
comborico
Can't find the answer to this: 9 / 4 . nine is the dividend, four is the divisor, 2 is the quotient, and one is the remainder. But what is it called when you carry the remainder over to as in 2 1/4?
23:38:10
aeth
comborico: 2 1/4 is a mixed fraction or mixed number. https://en.wikipedia.org/wiki/Fraction_(mathematics)#Mixed_numbers
23:38:56
aeth
Three names on Wikipedia. The one I learned (a very long time ago) was "mixed fraction" iirc.
0:06:43
krwq
are there any good libraries for 2d matrices (not expecting larger matrices than 1000x1000), only need multiplication, addition and some kind of elementiwise map? I've tried magicl but it seems super unfinished, and supporting only complex matrices although seems like it's under development and calls into lapack
0:22:19
pierpa
I'm not sure that for 1000x1000 matrices, sophisticated methods are faster. Are you better informed than me about this?
0:24:24
pierpa
it looks like that for 1000x1000 Strassen may be useful, according to https://stackoverflow.com/questions/22807065/where-is-strassens-matrix-multiplication-useful
0:27:38
krwq
pierpa: seems like n^2.373 is the fastest: https://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_algorithm
0:29:06
krwq
I think naive might do in this case unless there is some ready solution then I'd go with that
0:29:31
pfdietz
Yeah, you have to be careful with algorithms. Constants matter, sometimes more than non-constant factors.
0:31:03
pfdietz
For matrices the bigger wins are in exploiting sparsity, and in block-structuring the computation to take advantage of caches (and also pipelining).
0:34:48
pierpa
krwq: how fast is at multiplying 1000x1000 something that must be optimized for this, say, matlab or mathematica?
0:35:48
krwq
pierpa: do not have matlab at this point, I remember back when I used it it was fairly instant, it's a good point
0:39:36
pfdietz
There was some excitement in combinatorics a couple of years ago related to a problem that had implications for matrix multiplicaton.
0:40:05
pfdietz
If the conjecture (the Erdos-Szemeredi Sunflower Conjecture) had been false, it could have been possible to multiply matrices in O(n^2) operations.
4:01:48
pfdietz
A 3-sunflower is a triple of distinct sets such that the pairwise intersection of each of the three pairs equals the intersection of all three.
4:02:27
pfdietz
E-S conjecture said that a sunflower-free collection of subsets of {1,...,n} has size O(c^n) for some constant c strictly less than 2.
4:27:48
krwq
could someone explain this? (array-element-type (make-array '(2 3) :element-type 'float)) => T
4:35:49
pfdietz
Ok, there is no specialized array for element type float. There IS for single-float or double-float. But float is a union of the various float types.
4:36:28
pfdietz
If you tell SBCL you want arrays that can store any float type, it will give you an array that can store any values whatsoever.
4:37:04
pfdietz
upgraded-array-element-type gives the 'least' element type that an implementation has that will support a given type.
4:37:49
krwq
pfdietz: and how do you know what implementation supports (or spec requires)? is it possible to add your own specialization?
4:39:20
pfdietz
A conforming implmentation must support arrays of certains types (bits, chars, base-chars, T), but can support more. There are some constraints.
4:42:31
pfdietz
No conforming implementation is required to support arrays specialized to hold single-floats.
4:46:33
pierpa
though, I think all modern implementations implements single-floats and double-floats as their corresponding IEEE sizes
4:48:12
loke
This one is a little more surprising: (upgraded-array-element-type '(integer 0 300)) ⇒ (UNSIGNED-BYTE 15)
4:50:39
pfdietz
If T1 is a (recognizable) subtype of T2, then (u-a-e-t T1) must be a subtype of (u-a-e-t T2).
4:52:04
pfdietz
In other words, SBCL must also support (unsigned-byte 15) as an actual array element type.
4:52:40
pfdietz
This also has the bizarre consequence that conforming lisps must have arrays with element type NIL.
4:53:17
pfdietz
They are required to support actual array elememt types of char and bit, and the intersection of those types is nil.
4:54:09
pfdietz
Yes. This is required by the standard, at least for recognizable subtypes. Obviously it can't be done in general for SATISFIES types without solving the halting problem.
5:55:31
phoe_air
jackdaniel is also coming, so it's at least five of us Polish people heading towards ELS.
6:20:35
p_l
antoszka: if there is too much traffic at the security, grab vouchers from lost&found office and go through premium
6:53:17
phoe_air
Airport WiFi does not allow SSH connection for some silly reasons. I must expose some kind of SSH tunnel.
6:53:33
phoe_air
As in, I must expose it one day when I come back, so I can connect via port 443 or something.
7:07:25
White_Flame
is there a reasonably faster way to get the string representation of an object through a custom print-object method than (format nil "~a" obj) ?
7:09:45
jackdaniel
depends on what print-object uses. you may use princ in the print-object method and you'll avoid format that way
7:10:52
White_Flame
actually, I remembered write-to-string, and that does the print-object formatting, so that seems to be a reasonable thing to use for this purpose
8:05:14
beach
Some time ago, someone here mentioned a commercial development system for a proprietary language, and that company went bust. But now I can't remember the name of the company. And I can't seem to find it in the logs.
9:00:26
FareTower
beach: I believe famous MIT Schemer Joe Marshall wrote a compiler for REBOL. Despite REBOL being super dynamic, you could optimize for the common case and fall back to the meta-level if that failed.