freenode/lisp - IRC Chatlog
Search
7:04:40
seok
spreading the task using bt didn't improve performance by any, so I'm wondering if it is the db
7:10:29
no-defun-allowed
Can you look at how fast it writes to disk, and how that compares to how fast you think your disk can be written to?
7:11:44
no-defun-allowed
On my system, I can have the activity monitor program show me how much each process writes and reads.
7:13:39
no-defun-allowed
I would watch that while having my program do its doings, and compare that to how fast the disk can be written to (which is around 100MB/s for a mechanical drive and more than 1000MB/s for a good solid state drive).
8:17:53
beach
One of the strengths of Common Lisp is that it has an international standard that is stable.
8:20:05
beach
As with anything, count 10 years to be a master. But you can learn the basics in a week or two if you work hard on it.
8:20:37
beach
A warning: If C++ is what you are used to, you will have some "aha" moments, and when you understand what is going on, you won't want to go back.
8:21:30
beach
So if, say, your livelihood depends on developing C++ code, you will no longer be happy at work. :)
8:22:22
kapil_
i have currently a c++ back end web server. i want to use common lisp . if it is easy
8:26:29
beach
But they won't get there ultimately anyway, until they abandon manual memory management and that crazy syntax.
8:33:09
beach
kapil_: Feel free to ask questions if there is something in that document that you do not understand.
8:42:52
phoe
(float-features:with-float-traps-masked (:invalid) (list (min 0d0 (/ 0d0 0d0)) (min (/ 0d0 0d0) 0d0))) ;=> (#<DOUBLE-FLOAT quiet NaN> 0.0d0)
8:44:13
phoe
(float-features:with-float-traps-masked (:invalid) (list (> 0d0 (/ 0d0 0d0)) (= 0d0 (/ 0d0 0d0)) (< 0d0 (/ 0d0 0d0)))) ;=> (NIL NIL NIL)
8:44:42
Guest2239
but nevertheless, (min nan 0d0) should return nan irrespective of the arrgument order
8:46:00
Guest2239
because that makes way more sense mathematically, and if one needs less consistence then should use a low level primitive
8:46:46
phoe
if you have NaNs compared to numbers, you've already screwed up, and no amount of lacquer on top of that will fix that
8:47:30
phoe
orders like #'< are only defined for real numbers, and NaN is, well, not a number. garbage in, garbage out.
8:51:24
phoe
"IEEE however, treats NaN as a missing value for the purpose of the minNum and maxNum functions. They will suppress a single NaN operand and return the number instead."
8:53:10
Guest2239
so it either supposed to return the other number independently of the argument order or nan
8:55:34
phoe
a naïve implementation of the algorithm there is (defun float< (x y) (cond ((> x y) x) ((< x y) x) ((= x y) x) ((float-features:float-nan-p x) y) ((float-features:float-nan-p y) x) (t x)))
8:58:54
phoe
but then again, it's up to the implementations to say whether they support ieee754-2008 float comparison
11:51:22
Shinmera
My opinion is it depends on what you need. If you just need matrix multiplication for small sizes you can write that triple loop yourself in like five lines. If you need large sizes and high performance you'll have to go for blas bindings. If it's in the middle, take your pick.