freenode/#lisp - IRC Chatlog
Search
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.
10:23:56
Xof
I'm on my way to Marbella! I arrive in Malaga at about the same time as SAL9000 (maybe we're on the same flight?)
10:26:32
Xof
so if anyone knows where I should go to meet up and get food, please leave instructions here!