Re: DIP80: phobos additions

2015-06-25 Thread Tofu Ninja via Digitalmars-d
On Thursday, 25 June 2015 at 01:32:22 UTC, Timon Gehr wrote: [...] Heres what I came up with... I love D so much 3 module util.binOpProxy; import std.algorithm : joiner, map; import std.array : array; struct __typeproxy(T, string s) { enum op = s; T payload; auto

Re: DIP80: phobos additions

2015-06-24 Thread Tofu Ninja via Digitalmars-d
On Wednesday, 24 June 2015 at 19:04:38 UTC, Wyatt wrote: On Wednesday, 17 June 2015 at 09:28:00 UTC, Tofu Ninja wrote: I actually thought about it more, and D does have a bunch of binary operators that no ones uses. You can make all sorts of weird operators like +*, *~, +++, ---, *--, /++,

Re: DIP80: phobos additions

2015-06-24 Thread Timon Gehr via Digitalmars-d
On 06/24/2015 11:41 PM, Tofu Ninja wrote: On Wednesday, 24 June 2015 at 19:04:38 UTC, Wyatt wrote: On Wednesday, 17 June 2015 at 09:28:00 UTC, Tofu Ninja wrote: I actually thought about it more, and D does have a bunch of binary operators that no ones uses. You can make all sorts of weird

Re: DIP80: phobos additions

2015-06-24 Thread Wyatt via Digitalmars-d
On Wednesday, 17 June 2015 at 09:28:00 UTC, Tofu Ninja wrote: I actually thought about it more, and D does have a bunch of binary operators that no ones uses. You can make all sorts of weird operators like +*, *~, +++, ---, *--, /++, ~~, ~-, -~, --, ++, ^^+, in++, |-, %~, ect... void

Re: DIP80: phobos additions

2015-06-23 Thread ponce via Digitalmars-d
On Wednesday, 10 June 2015 at 15:44:40 UTC, Andrei Alexandrescu wrote: On 6/10/15 1:53 AM, ponce wrote: On Wednesday, 10 June 2015 at 07:56:46 UTC, John Chapman wrote: It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better

Re: DIP80: phobos additions

2015-06-23 Thread Dominikus Dittes Scherkl via Digitalmars-d
On Wednesday, 17 June 2015 at 09:28:00 UTC, Tofu Ninja wrote: I actually thought about it more, and D does have a bunch of binary operators that no ones uses. You can make all sorts of weird operators like +*, *~, +++, ---, *--, /++, ~~, ~-, -~, --, ++, ^^+, in++, |-, %~, ect... +* is a

Re: DIP80: phobos additions

2015-06-23 Thread Tofu Ninja via Digitalmars-d
On Tuesday, 23 June 2015 at 16:33:29 UTC, Dominikus Dittes Scherkl wrote: On Wednesday, 17 June 2015 at 09:28:00 UTC, Tofu Ninja wrote: I actually thought about it more, and D does have a bunch of binary operators that no ones uses. You can make all sorts of weird operators like +*, *~, +++,

Re: DIP80: phobos additions

2015-06-21 Thread Steven Schveighoffer via Digitalmars-d
On 6/19/15 9:50 PM, Joakim wrote: Then there's always this: http://www.theverge.com/2015/6/19/8811425/heinz-ketchup-qr-code-porn-site-fundorado Not the fault of the QR code of course, just an expired domain name, but still funny. :) Oh man. Note to marketing department -- all QR codes must

Re: DIP80: phobos additions

2015-06-19 Thread Joakim via Digitalmars-d
On Sunday, 14 June 2015 at 01:57:37 UTC, Steven Schveighoffer wrote: On 6/13/15 11:46 AM, Nick Sabalausky wrote: On 06/08/2015 03:55 AM, ezneh wrote: - Create / read QR codes, maybe ? It seems we see more and more QR Codes here and there, so it could potentially be worth it I see them

Re: DIP80: phobos additions

2015-06-17 Thread Tofu Ninja via Digitalmars-d
On Friday, 12 June 2015 at 01:55:15 UTC, Wyatt wrote: From the outset, my thought was to strictly define the set of (eight or so?) symbols for this. If memory serves, it was right around the time Walter's rejected wholesale user-defined operators because of exactly the problem you mention.

Re: DIP80: phobos additions

2015-06-15 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 7 June 2015 at 18:27:16 UTC, Robert burner Schadek wrote: Phobos is awesome, the libs of go, python and rust only have better marketing. As discussed on dconf, phobos needs to become big and blow the rest out of the sky. http://wiki.dlang.org/DIP80 lets get OT, please discuss

Re: DIP80: phobos additions

2015-06-15 Thread Ilya Yaroshenko via Digitalmars-d
On Monday, 15 June 2015 at 08:12:17 UTC, anonymous wrote: I understand 'optimize default implementation to the speed of high quality BLAS for _any_/large matrix size'. Great if it is done but imo there is no real pressure to do it and probably needs lot of time of experts. +1

Re: DIP80: phobos additions

2015-06-15 Thread via Digitalmars-d
On Monday, 15 June 2015 at 08:12:17 UTC, anonymous wrote: sorry, I should read more careful. I understand 'optimize default implementation to the speed of high quality BLAS for _any_/large matrix size'. Great if it is done but imo there is no real pressure to do it and probably needs lot of

Re: DIP80: phobos additions

2015-06-15 Thread John Colvin via Digitalmars-d
On Monday, 15 June 2015 at 13:44:53 UTC, Dennis Ritchie wrote: On Monday, 15 June 2015 at 10:00:43 UTC, Ilya Yaroshenko wrote: N-dimensional slices is ready for comments! It seems to me that the properties of the matrix require `row` and `col` like this: import std.stdio,

Re: DIP80: phobos additions

2015-06-15 Thread Dennis Ritchie via Digitalmars-d
On Monday, 15 June 2015 at 10:00:43 UTC, Ilya Yaroshenko wrote: N-dimensional slices is ready for comments! It seems to me that the properties of the matrix require `row` and `col` like this: import std.stdio, std.experimental.range.ndslice, std.range : iota; void main() { auto

Re: DIP80: phobos additions

2015-06-15 Thread Ilya Yaroshenko via Digitalmars-d
On Monday, 15 June 2015 at 13:55:16 UTC, John Colvin wrote: On Monday, 15 June 2015 at 13:44:53 UTC, Dennis Ritchie wrote: On Monday, 15 June 2015 at 10:00:43 UTC, Ilya Yaroshenko wrote: N-dimensional slices is ready for comments! It seems to me that the properties of the matrix require

Re: DIP80: phobos additions

2015-06-15 Thread Dennis Ritchie via Digitalmars-d
On Monday, 15 June 2015 at 14:32:20 UTC, Ilya Yaroshenko wrote: I am note sure that we need something like `height`/row and `width`/col for nd-slices. This kind of names can be used after casting to the future `std.container.matrix`. Here something similar implemented:

Re: DIP80: phobos additions

2015-06-15 Thread Ilya Yaroshenko via Digitalmars-d
On Monday, 15 June 2015 at 13:44:53 UTC, Dennis Ritchie wrote: On Monday, 15 June 2015 at 10:00:43 UTC, Ilya Yaroshenko wrote: N-dimensional slices is ready for comments! It seems to me that the properties of the matrix require `row` and `col` like this: import std.stdio,

Re: DIP80: phobos additions

2015-06-15 Thread anonymous via Digitalmars-d
On Sunday, 14 June 2015 at 21:50:02 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 21:31:53 UTC, anonymous wrote: 2. Then write similar code with hardware optimized BLAS and benchmark where the overhead between pure C/LLVM and BLAS calls balance out to even. may there are more

Re: DIP80: phobos additions

2015-06-15 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 21:50:02 UTC, Ola Fosheim Grøstad wrote: Sure, but that is what I'd do if I had the time. Get a baseline for what kind of NxN sizes D can reasonably be expected to deal with in a naive brute force manner. In case it isn't obvious: a potential advantage of a simple

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 12:01:47 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 11:43:46 UTC, Ilya Yaroshenko wrote: I am really don't understand what you mean with generic keyword. Do you want one matrix type that includes all cases??? I hope you does not. Yes, that is what

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 11:43:46 UTC, Ilya Yaroshenko wrote: I am really don't understand what you mean with generic keyword. Do you want one matrix type that includes all cases??? I hope you does not. Yes, that is what generic programming is about. The type should signify the semantics,

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 12:52:52 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 12:18:39 UTC, Ilya Yaroshenko wrote: std.range has a lot of types + D arrays. The power in unified API (structural type system). Yeah, I agree that templates in C++/D more or less makes those type

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
I think there might be a disconnection in this thread. D only, or D frontend? There are hardware vendor and commercial libraries that are heavily optimized for particular hardware configurations. There is no way a D-only solution can beat those. As an example Apple provides various

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 12:18:39 UTC, Ilya Yaroshenko wrote: std.range has a lot of types + D arrays. The power in unified API (structural type system). Yeah, I agree that templates in C++/D more or less makes those type systems structural-like, even though C is using nominal typing.

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 14:02:59 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 13:48:23 UTC, Ilya Yaroshenko wrote: Alignment, strides (windows on a stream - I understand it like Sliding Windows) are not a problem. It isn't a problem if you use the best possible abstraction

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 09:07:19 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 08:14:21 UTC, weaselcat wrote: nobody uses general purpose linear matrix libraries for games/graphics for a reason, The reason is that C++ didn't provide anything. As a result each framework

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 08:14:21 UTC, weaselcat wrote: nobody uses general purpose linear matrix libraries for games/graphics for a reason, The reason is that C++ didn't provide anything. As a result each framework provide their own and you get N different libraries that are incompatible.

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 10:43:24 UTC, Ola Fosheim Grøstad wrote: I think there might be a disconnection in this thread. D only, or D frontend? There are hardware vendor and commercial libraries that are heavily optimized for particular hardware configurations. There is no way a D-only

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 09:25:25 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 09:19:19 UTC, Ilya Yaroshenko wrote: The reason is general purpose matrixes allocated at heap, but small graphic matrices are plain structs. No, the reason is that LA-libraries are C-libraries that

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 13:48:23 UTC, Ilya Yaroshenko wrote: Alignment, strides (windows on a stream - I understand it like Sliding Windows) are not a problem. It isn't a problem if you use the best possible abstraction from the start. It is a problem if you don't focus on it from the

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 09:19:19 UTC, Ilya Yaroshenko wrote: The reason is general purpose matrixes allocated at heap, but small graphic matrices are plain structs. No, the reason is that LA-libraries are C-libraries that also deal with variable sized matrices. A good generic API can

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 10:15:08 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 09:59:22 UTC, Ilya Yaroshenko wrote: We need D own BLAS implementation to do it. Why can't you use version for those that want to use a BLAS library for the implementation? Those who want

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 09:59:22 UTC, Ilya Yaroshenko wrote: We need D own BLAS implementation to do it. Why can't you use version for those that want to use a BLAS library for the implementation? Those who want replications of LAPACK/LINPACK APIs can use separate bindings? And those

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 02:56:04 UTC, jmh530 wrote: On Saturday, 13 June 2015 at 11:18:54 UTC, Ola Fosheim Grøstad wrote: I think linear algebra should have the same syntax for small and large matrices and switch representation behind the scenes. Switching representations behind the

Re: DIP80: phobos additions

2015-06-14 Thread weaselcat via Digitalmars-d
On Saturday, 13 June 2015 at 10:35:55 UTC, Tofu Ninja wrote: On Saturday, 13 June 2015 at 08:45:20 UTC, John Colvin wrote: The tiny subset of numerical linear algebra that is relevant for graphics (mostly very basic operations, 2,3 or 4 dimensions) is not at all representative of the whole.

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 15:15:38 UTC, Ilya Yaroshenko wrote: A naive basic matrix library is simple to write, I don't need standard library support for that + I get it to work the way I want by using SIMD registers directly... = I probably would not use it if I could implement it in less

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
On Sunday, 14 June 2015 at 18:05:33 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 15:15:38 UTC, Ilya Yaroshenko wrote: A naive basic matrix library is simple to write, I don't need standard library support for that + I get it to work the way I want by using SIMD registers

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 14:25:11 UTC, Ilya Yaroshenko wrote: I am sorry for this trolling: Lisp is the best abstraction, thought. Even it if was, it does not provide the meta info and alignment type constraints that makes it possible to hardware/SIMD optimize it behind the scenes. For

Re: DIP80: phobos additions

2015-06-14 Thread weaselcat via Digitalmars-d
On Sunday, 14 June 2015 at 14:46:36 UTC, Ola Fosheim Grøstad wrote: Yes, C++ templates are a hard nut to crack, if D had added excellent pattern matching to its meta programming repertoire the I think this would be enough to put D in a different league. https://github.com/solodon4/Mach7

Re: DIP80: phobos additions

2015-06-14 Thread Ilya Yaroshenko via Digitalmars-d
A naive basic matrix library is simple to write, I don't need standard library support for that + I get it to work the way I want by using SIMD registers directly... = I probably would not use it if I could implement it in less than 10 hours. A naive std.algorithm and std.range is easy to

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 18:49:21 UTC, Ilya Yaroshenko wrote: Yes, but it would be hard to create SIMD optimised version. Then again clang is getting better at this stuff. What do you think about this chain of steps? 1. Create generalised (only type template and my be flags) BLAS

Re: DIP80: phobos additions

2015-06-14 Thread anonymous via Digitalmars-d
1. Create generalised (only type template and my be flags) BLAS algorithms (probably slow) with CBLAS like API. See [1] (the Matmul benchmark) Julia Native is probably backed with Intel MKL or OpenBLAS. D version was optimized by Martin Nowak [2] and is still _much_ slower. 2. Allow users to

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 21:31:53 UTC, anonymous wrote: 2. Then write similar code with hardware optimized BLAS and benchmark where the overhead between pure C/LLVM and BLAS calls balance out to even. may there are more important / beneficial things to work on - assuming total time of

Re: DIP80: phobos additions

2015-06-14 Thread via Digitalmars-d
Another thing worth noting is that I believe Intel has put some effort into next gen (?) LLVM/Clang for autovectorizing into AVX2. It might be worth looking into as it uses a mask that allows the CPU to skip computations that would lead to no change, but I think it is only available on last

Re: DIP80: phobos additions

2015-06-13 Thread ketmar via Digitalmars-d
On Sat, 13 Jun 2015 21:57:42 -0400, Steven Schveighoffer wrote: A rather cool usage of QR code I saw was a sticker on a device that was a link to the PDF of the manual. it's k001, but i'll take a printed URL for it in any time. the old good URL that i can read with my eyes. signature.asc

Re: DIP80: phobos additions

2015-06-13 Thread jmh530 via Digitalmars-d
On Saturday, 13 June 2015 at 11:18:54 UTC, Ola Fosheim Grøstad wrote: I think linear algebra should have the same syntax for small and large matrices and switch representation behind the scenes. Switching representations behind the scenes? Sounds complicated. I would think that if you were

Re: DIP80: phobos additions

2015-06-13 Thread Steven Schveighoffer via Digitalmars-d
On 6/13/15 11:46 AM, Nick Sabalausky wrote: On 06/08/2015 03:55 AM, ezneh wrote: - Create / read QR codes, maybe ? It seems we see more and more QR Codes here and there, so it could potentially be worth it I see them everywhere, but does anyone ever actually use them? Usually it's just an

Re: DIP80: phobos additions

2015-06-13 Thread Timon Gehr via Digitalmars-d
On 06/13/2015 12:35 PM, Tofu Ninja wrote: On Saturday, 13 June 2015 at 08:45:20 UTC, John Colvin wrote: The tiny subset of numerical linear algebra that is relevant for graphics (mostly very basic operations, 2,3 or 4 dimensions) is not at all representative of the whole. The algorithms are

Re: DIP80: phobos additions

2015-06-13 Thread weaselcat via Digitalmars-d
On Saturday, 13 June 2015 at 16:53:22 UTC, Nick Sabalausky wrote: On 06/07/2015 02:27 PM, Robert burner Schadek wrote: Phobos is awesome, the libs of go, python and rust only have better marketing. As discussed on dconf, phobos needs to become big and blow the rest out of the sky.

Re: DIP80: phobos additions

2015-06-13 Thread Nick Sabalausky via Digitalmars-d
On 06/08/2015 03:55 AM, ezneh wrote: - Create / read QR codes, maybe ? It seems we see more and more QR Codes here and there, so it could potentially be worth it I see them everywhere, but does anyone ever actually use them? Usually it's just an obvious link to some company's

Re: DIP80: phobos additions

2015-06-13 Thread ketmar via Digitalmars-d
On Sat, 13 Jun 2015 11:46:41 -0400, Nick Sabalausky wrote: Maybe I'm just not seeing it, but I suspect QR is more someone that companies *want* people to care about, rather than something anyone actually uses. same for me. signature.asc Description: PGP signature

Re: DIP80: phobos additions

2015-06-13 Thread Nick Sabalausky via Digitalmars-d
On 06/07/2015 02:27 PM, Robert burner Schadek wrote: Phobos is awesome, the libs of go, python and rust only have better marketing. As discussed on dconf, phobos needs to become big and blow the rest out of the sky. http://wiki.dlang.org/DIP80 lets get OT, please discuss What are the

Re: DIP80: phobos additions

2015-06-13 Thread rsw0x via Digitalmars-d
On Sunday, 7 June 2015 at 18:27:16 UTC, Robert burner Schadek wrote: Phobos is awesome, the libs of go, python and rust only have better marketing. As discussed on dconf, phobos needs to become big and blow the rest out of the sky. http://wiki.dlang.org/DIP80 lets get OT, please discuss

Re: DIP80: phobos additions

2015-06-13 Thread John Colvin via Digitalmars-d
On Friday, 12 June 2015 at 17:56:53 UTC, Tofu Ninja wrote: On Friday, 12 June 2015 at 17:10:08 UTC, jmh530 wrote: On Friday, 12 June 2015 at 03:35:31 UTC, Rikki Cattermole wrote: Humm, work on getting gl3n into phobos or work on my ODBC driver manager. Tough choice. I can only speak for

Re: DIP80: phobos additions

2015-06-13 Thread via Digitalmars-d
On Saturday, 13 June 2015 at 11:05:19 UTC, John Colvin wrote: Linear algebra for graphics is the specialised case, not the other way around. As a possible name for something like gl3n in phobos, I like std.math.geometry A geometry library is different, it should be type safe when it comes to

Re: DIP80: phobos additions

2015-06-13 Thread Rikki Cattermole via Digitalmars-d
On 13/06/2015 10:35 p.m., Tofu Ninja wrote: On Saturday, 13 June 2015 at 08:45:20 UTC, John Colvin wrote: The tiny subset of numerical linear algebra that is relevant for graphics (mostly very basic operations, 2,3 or 4 dimensions) is not at all representative of the whole. The algorithms are

Re: DIP80: phobos additions

2015-06-13 Thread Tofu Ninja via Digitalmars-d
On Saturday, 13 June 2015 at 08:45:20 UTC, John Colvin wrote: The tiny subset of numerical linear algebra that is relevant for graphics (mostly very basic operations, 2,3 or 4 dimensions) is not at all representative of the whole. The algorithms are different and the APIs are often necessarily

Re: DIP80: phobos additions

2015-06-13 Thread John Colvin via Digitalmars-d
On Saturday, 13 June 2015 at 10:35:55 UTC, Tofu Ninja wrote: On Saturday, 13 June 2015 at 08:45:20 UTC, John Colvin wrote: The tiny subset of numerical linear algebra that is relevant for graphics (mostly very basic operations, 2,3 or 4 dimensions) is not at all representative of the whole.

Re: DIP80: phobos additions

2015-06-13 Thread John Colvin via Digitalmars-d
On Saturday, 13 June 2015 at 10:37:39 UTC, Rikki Cattermole wrote: On 13/06/2015 10:35 p.m., Tofu Ninja wrote: On Saturday, 13 June 2015 at 08:45:20 UTC, John Colvin wrote: [...] I think there is a conflict of interest with what people want. There seem to be people like me who only want or

Re: DIP80: phobos additions

2015-06-13 Thread Dennis Ritchie via Digitalmars-d
Good start: http://code.dlang.org/packages/dip80-ndslice https://github.com/9il/dip80-ndslice/blob/master/source/std/experimental/range/ndslice.d I miss the function `sliced` in Phobos.

Re: DIP80: phobos additions

2015-06-12 Thread Manu via Digitalmars-d
On 12 June 2015 at 15:22, Ilya Yaroshenko via Digitalmars-d digitalmars-d@puremagic.com wrote: On Friday, 12 June 2015 at 00:51:04 UTC, Manu wrote: On 10 June 2015 at 02:40, Ilya Yaroshenko via Digitalmars-d digitalmars-d@puremagic.com wrote: On Tuesday, 9 June 2015 at 16:18:06 UTC, Manu

Re: DIP80: phobos additions

2015-06-12 Thread jmh530 via Digitalmars-d
On Friday, 12 June 2015 at 17:56:53 UTC, Tofu Ninja wrote: Matrix math is matrix math, it being for ogl makes no real difference. I think it’s a little more complicated than that. BLAS and LAPACK (or variants on them) are low-level matrix math libraries that many higher-level libraries

Re: DIP80: phobos additions

2015-06-12 Thread Rikki Cattermole via Digitalmars-d
On 13/06/2015 7:45 a.m., jmh530 wrote: On Friday, 12 June 2015 at 17:56:53 UTC, Tofu Ninja wrote: Matrix math is matrix math, it being for ogl makes no real difference. I think it’s a little more complicated than that. BLAS and LAPACK (or variants on them) are low-level matrix math libraries

Re: DIP80: phobos additions

2015-06-12 Thread Ilya Yaroshenko via Digitalmars-d
On Friday, 12 June 2015 at 11:00:20 UTC, Manu wrote: Low-level optimisation is a sliding scale, not a binary position. Reaching 'optimal' state definitely requires careful consideration of all the details you refer to, but there are a lot of improvements that can be gained from quickly

Re: DIP80: phobos additions

2015-06-12 Thread Wyatt via Digitalmars-d
On Friday, 12 June 2015 at 03:18:31 UTC, Tofu Ninja wrote: What would the new order of operations be for these new operators? Hadn't honestly thought that far. Like I said, it was more of a nascent idea than a coherent proposal (probably with a DIP and many more words). It's an

Re: DIP80: phobos additions

2015-06-12 Thread jmh530 via Digitalmars-d
On Friday, 12 June 2015 at 03:35:31 UTC, Rikki Cattermole wrote: Humm, work on getting gl3n into phobos or work on my ODBC driver manager. Tough choice. I can only speak for myself. I'm sure there's a lot of value in solid ODBC support. I use SQL some, but I use matrix math more. I'm not

Re: DIP80: phobos additions

2015-06-12 Thread Tofu Ninja via Digitalmars-d
On Friday, 12 June 2015 at 17:10:08 UTC, jmh530 wrote: On Friday, 12 June 2015 at 03:35:31 UTC, Rikki Cattermole wrote: Humm, work on getting gl3n into phobos or work on my ODBC driver manager. Tough choice. I can only speak for myself. I'm sure there's a lot of value in solid ODBC support.

Re: DIP80: phobos additions

2015-06-11 Thread Andrei Alexandrescu via Digitalmars-d
On 6/11/15 5:17 AM, Steven Schveighoffer wrote: On 6/11/15 4:15 AM, Marc =?UTF-8?B?U2Now7x0eiI=?= schue...@gmx.net wrote: On Wednesday, 10 June 2015 at 20:31:52 UTC, Steven Schveighoffer wrote: OK, thanks for the explanation. I'd do it the other way around: Flag!threadlocal, since we should be

Re: DIP80: phobos additions

2015-06-11 Thread Steven Schveighoffer via Digitalmars-d
On 6/11/15 4:15 AM, Marc =?UTF-8?B?U2Now7x0eiI=?= schue...@gmx.net wrote: On Wednesday, 10 June 2015 at 20:31:52 UTC, Steven Schveighoffer wrote: OK, thanks for the explanation. I'd do it the other way around: Flag!threadlocal, since we should be safe by default. `RefCounted!T` is also

Re: DIP80: phobos additions

2015-06-11 Thread jmh530 via Digitalmars-d
On Tuesday, 9 June 2015 at 03:26:25 UTC, Ilya Yaroshenko wrote: There are https://github.com/9il/simple_matrix and https://github.com/9il/cblas . I will try to rework them for Phobos. Any ideas and suggestions? A well-supported matrix math library would definitely lead to me using D more.

Re: DIP80: phobos additions

2015-06-11 Thread Wyatt via Digitalmars-d
On Thursday, 11 June 2015 at 21:30:22 UTC, jmh530 wrote: Most of what I discuss below is just syntactical sugar for some stuff that could be accomplished with loops or std.algorithm, Your post reminds me of two things I've considered attempting in the past: 1) a set of operators that have

Re: DIP80: phobos additions

2015-06-11 Thread Ilya Yaroshenko via Digitalmars-d
On Friday, 12 June 2015 at 00:51:04 UTC, Manu wrote: On 10 June 2015 at 02:40, Ilya Yaroshenko via Digitalmars-d digitalmars-d@puremagic.com wrote: On Tuesday, 9 June 2015 at 16:18:06 UTC, Manu wrote: On 10 June 2015 at 01:26, Ilya Yaroshenko via Digitalmars-d digitalmars-d@puremagic.com

Re: DIP80: phobos additions

2015-06-11 Thread Manu via Digitalmars-d
On 10 June 2015 at 02:40, Ilya Yaroshenko via Digitalmars-d digitalmars-d@puremagic.com wrote: On Tuesday, 9 June 2015 at 16:18:06 UTC, Manu wrote: On 10 June 2015 at 01:26, Ilya Yaroshenko via Digitalmars-d digitalmars-d@puremagic.com wrote: I believe that Phobos must support some common

Re: DIP80: phobos additions

2015-06-11 Thread Dennis Ritchie via Digitalmars-d
On Friday, 12 June 2015 at 00:51:04 UTC, Manu wrote: Perhaps you've never worked with incompetent programmers (in my experience, 50% of the professional workforce). Programmers, on average, don't know maths. They literally have no idea how to simplify an algebraic expression. I think there are

Re: DIP80: phobos additions

2015-06-11 Thread Tofu Ninja via Digitalmars-d
On Friday, 12 June 2015 at 01:55:15 UTC, Wyatt wrote: From the outset, my thought was to strictly define the set of (eight or so?) symbols for this. If memory serves, it was right around the time Walter's rejected wholesale user-defined operators because of exactly the problem you mention.

Re: DIP80: phobos additions

2015-06-11 Thread Rikki Cattermole via Digitalmars-d
On 12/06/2015 9:30 a.m., jmh530 wrote: On Tuesday, 9 June 2015 at 03:26:25 UTC, Ilya Yaroshenko wrote: There are https://github.com/9il/simple_matrix and https://github.com/9il/cblas . I will try to rework them for Phobos. Any ideas and suggestions? A well-supported matrix math library

Re: DIP80: phobos additions

2015-06-11 Thread jmh530 via Digitalmars-d
On Thursday, 11 June 2015 at 22:36:28 UTC, Wyatt wrote: 1) a set of operators that have no meaning unless an overload is specifically provided (for dot product, dyadic transpose, etc.) and I see your point, but I think it might be a bit risky if you allow too much freedom for overloading

Re: DIP80: phobos additions

2015-06-11 Thread Manu via Digitalmars-d
On 10 June 2015 at 03:04, John Colvin via Digitalmars-d digitalmars-d@puremagic.com wrote: On Tuesday, 9 June 2015 at 16:45:33 UTC, Manu wrote: On 10 June 2015 at 02:32, John Colvin via Digitalmars-d digitalmars-d@puremagic.com wrote: On Tuesday, 9 June 2015 at 16:18:06 UTC, Manu wrote:

Re: DIP80: phobos additions

2015-06-11 Thread Wyatt via Digitalmars-d
On Friday, 12 June 2015 at 00:11:16 UTC, jmh530 wrote: On Thursday, 11 June 2015 at 22:36:28 UTC, Wyatt wrote: 1) a set of operators that have no meaning unless an overload is specifically provided (for dot product, dyadic transpose, etc.) and I see your point, but I think it might be a

Re: DIP80: phobos additions

2015-06-11 Thread via Digitalmars-d
On Wednesday, 10 June 2015 at 20:31:52 UTC, Steven Schveighoffer wrote: OK, thanks for the explanation. I'd do it the other way around: Flag!threadlocal, since we should be safe by default. `RefCounted!T` is also thread-local by default, only `shared(RefCounted!T)` needs to use atomic

Re: DIP80: phobos additions

2015-06-10 Thread Steven Schveighoffer via Digitalmars-d
On 6/9/15 5:46 PM, Andrei Alexandrescu wrote: On 6/9/15 1:53 PM, Steven Schveighoffer wrote: On 6/9/15 2:59 PM, Andrei Alexandrescu wrote: On 6/9/15 11:42 AM, Dennis Ritchie wrote: And finally `std.bigint` offers good (but not outstanding) performance. BigInt should use reference counting.

Re: DIP80: phobos additions

2015-06-10 Thread ixid via Digitalmars-d
On Tuesday, 9 June 2015 at 16:14:24 UTC, Dennis Ritchie wrote: On Tuesday, 9 June 2015 at 15:26:43 UTC, Ilya Yaroshenko wrote: D definitely needs BLAS API support for matrix multiplication. Best BLAS libraries are written in assembler like openBLAS. Otherwise D will have last position in

Re: DIP80: phobos additions

2015-06-10 Thread ketmar via Digitalmars-d
On Wed, 10 Jun 2015 09:12:15 +, John Chapman wrote: On Wednesday, 10 June 2015 at 07:56:46 UTC, John Chapman wrote: It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better precision than float and double. Other things

Re: DIP80: phobos additions

2015-06-10 Thread John Chapman via Digitalmars-d
On Wednesday, 10 June 2015 at 09:30:37 UTC, Robert burner Schadek wrote: On Wednesday, 10 June 2015 at 09:12:17 UTC, John Chapman wrote: Logging std.experimental.logger!? Perfect, he said sheepishly.

Re: DIP80: phobos additions

2015-06-10 Thread ixid via Digitalmars-d
On Wednesday, 10 June 2015 at 08:50:31 UTC, Dennis Ritchie wrote: On Wednesday, 10 June 2015 at 08:39:12 UTC, ixid wrote: I suspect this is more about who the Mathematica and D users are as Project Euler is mostly mathematical rather than code optimization. Here and I say

Re: DIP80: phobos additions

2015-06-10 Thread John Chapman via Digitalmars-d
It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better precision than float and double.

Re: DIP80: phobos additions

2015-06-10 Thread via Digitalmars-d
On Wednesday, 10 June 2015 at 07:56:46 UTC, John Chapman wrote: It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better precision than float and double. I think the next release of LDC will support it, at least on some

Re: DIP80: phobos additions

2015-06-10 Thread Robert burner Schadek via Digitalmars-d
On Wednesday, 10 June 2015 at 09:12:17 UTC, John Chapman wrote: Logging std.experimental.logger!?

Re: DIP80: phobos additions

2015-06-10 Thread Dennis Ritchie via Digitalmars-d
On Wednesday, 10 June 2015 at 08:39:12 UTC, ixid wrote: I suspect this is more about who the Mathematica and D users are as Project Euler is mostly mathematical rather than code optimization. More of the Mathematica users would have strong maths backgrounds. I haven't felt held back by D at

Re: DIP80: phobos additions

2015-06-10 Thread John Chapman via Digitalmars-d
On Wednesday, 10 June 2015 at 07:56:46 UTC, John Chapman wrote: It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better precision than float and double. Other things I often have a need for: Weak references Queues, stacks,

Re: DIP80: phobos additions

2015-06-10 Thread ponce via Digitalmars-d
On Wednesday, 10 June 2015 at 07:56:46 UTC, John Chapman wrote: It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better precision than float and double. FWIW:

Re: DIP80: phobos additions

2015-06-10 Thread Dennis Ritchie via Digitalmars-d
On Wednesday, 10 June 2015 at 08:39:12 UTC, ixid wrote: I suspect this is more about who the Mathematica and D users are as Project Euler is mostly mathematical rather than code optimization. Here and I say that despite the fact that in D BigInt not optimized very well, it

Re: DIP80: phobos additions

2015-06-10 Thread via Digitalmars-d
On Wednesday, 10 June 2015 at 09:12:17 UTC, John Chapman wrote: HMAC (for OAuth) https://github.com/D-Programming-Language/phobos/pull/3233 Unfortunately it triggers a module cycle bug on FreeBSD that I can't figure out, so it hasn't been merged yet.

Re: DIP80: phobos additions

2015-06-10 Thread Andrei Alexandrescu via Digitalmars-d
On 6/10/15 1:53 AM, ponce wrote: On Wednesday, 10 June 2015 at 07:56:46 UTC, John Chapman wrote: It's a shame ucent/cent never got implemented. But couldn't they be added to Phobos? I often need a 128-bit type with better precision than float and double. FWIW:

Re: DIP80: phobos additions

2015-06-10 Thread Steven Schveighoffer via Digitalmars-d
On 6/10/15 11:49 AM, Andrei Alexandrescu wrote: On 6/10/15 3:52 AM, Steven Schveighoffer wrote: On 6/9/15 5:46 PM, Andrei Alexandrescu wrote: On 6/9/15 1:53 PM, Steven Schveighoffer wrote: On 6/9/15 2:59 PM, Andrei Alexandrescu wrote: On 6/9/15 11:42 AM, Dennis Ritchie wrote: And finally

Re: DIP80: phobos additions

2015-06-10 Thread Dennis Ritchie via Digitalmars-d
On Wednesday, 10 June 2015 at 09:43:47 UTC, ixid wrote: You rarely need to use BigInt for heavy lifting though, often it's just summing, not that I would argue against optimization. I think speed is absolutely vital and one of the most powerful things we could do to promote D would be to run

Re: DIP80: phobos additions

2015-06-10 Thread Andrei Alexandrescu via Digitalmars-d
On 6/10/15 3:52 AM, Steven Schveighoffer wrote: On 6/9/15 5:46 PM, Andrei Alexandrescu wrote: On 6/9/15 1:53 PM, Steven Schveighoffer wrote: On 6/9/15 2:59 PM, Andrei Alexandrescu wrote: On 6/9/15 11:42 AM, Dennis Ritchie wrote: And finally `std.bigint` offers good (but not outstanding)

Re: DIP80: phobos additions

2015-06-09 Thread John Colvin via Digitalmars-d
On Tuesday, 9 June 2015 at 06:59:07 UTC, Andrei Alexandrescu wrote: On 6/8/15 8:26 PM, Ilya Yaroshenko wrote: On Sunday, 7 June 2015 at 18:27:16 UTC, Robert burner Schadek wrote: Phobos is awesome, the libs of go, python and rust only have better marketing. As discussed on dconf, phobos needs

Re: DIP80: phobos additions

2015-06-09 Thread Ilya Yaroshenko via Digitalmars-d
size_t anyNumber; auto ar = new int[3 * 8 * 9 + anyNumber]; auto slice = Slice[0..3, 4..8, 1..9]; assert(ar.canBeSlicedWith(slice)); //checks that ar.length = 3 * 8 * 9 auto tensor = ar.sliced(slice); tensor[0, 1, 2] = 4; auto matrix = tensor[0..$, 1, 0..$]; assert(matrix[0, 2] == 4);

  1   2   >