On Tuesday, 6 March 2018 at 08:20:05 UTC, J-S Caux wrote:
On Tuesday, 6 March 2018 at 07:12:57 UTC, Robert M. Münch wrote:
On 2018-03-05 20:11:06 +0000, H. S. Teoh said:
[snip]
Now, with Uknown's trick of using the C math functions, I can
reconsider. It's a bit of a "patch" but at least it works.
I'm glad I could help!
In an ideal world, I'd like the language I use to:
- have double-precision arithmetic with equal performance to
C/C++
- have all basic mathematical functions implemented, including
for complex types
- *big bonus*: have the ability to do extended-precision
arithmetic (integer, but most importantly (complex)
floating-point) on-the-fly if I so wish, without having to rely
on external libraries.
D has std.complex and inbuilt complex types, just like C [0][1].
I modified the mandelbrot generator on Wikipedia, using D's
std.complex and didn't have too much of an issue with
performance.[2]
Also, std.bigint and mir might be of interest to you.[3]
C++ was always fine, with external libraries for extended
precision, but D is so much more pleasant to use. Many of my
colleagues are switching to e.g. Julia despite the performance
costs, because it is by design a very maths/science-friendly
language. D is however much closer to a whole stack of existing
codebases, so switching to it would involve much less extensive
refactoring.
Theres a good chance D can interface with those libraries you
mentioned...
[0]: https://dlang.org/phobos/std_complex.html
[1]: https://dlang.org/phobos/core_stdc_complex.html
[2]:
https://github.com/Sirsireesh/Khoj-2017/blob/master/Mandelbrot-set/mandelbrot.d
[3]: https://github.com/libmir