Author Topic: Yeppp! High performance mathematical library  (Read 26405 times)

Gunther

  • Member
  • *****
  • Posts: 4070
  • Forgive your enemies, but never forget their names
Re: Yeppp! High performance mathematical library
« Reply #15 on: October 10, 2013, 09:32:01 AM »
Dave,

I guess with a math paper, the translation would probably be accurate in any case.

Dave.

I think no one would read it if it were not written in English. It is the lingua franca in science.

Gunther
Get your facts first, and then you can distort them.

Adamanteus

  • Member
  • **
  • Posts: 249
    • LLC "AMS"
Re: Yeppp! High performance mathematical library
« Reply #16 on: October 11, 2013, 08:33:14 AM »

Good idea. We can try to make our own HPC library. Why not? Any ideas?

Gunther

That's possible to join entusiasts on Math DLL Project, on old site version there is it.

Gunther

  • Member
  • *****
  • Posts: 4070
  • Forgive your enemies, but never forget their names
Re: Yeppp! High performance mathematical library
« Reply #17 on: October 11, 2013, 09:02:07 AM »
That's possible to join entusiasts on Math DLL Project, on old site version there is it.

Couldn't find a HPC approach.

Gunther
Get your facts first, and then you can distort them.

Marat Dukhan

  • Guest
Re: Yeppp! High performance mathematical library
« Reply #18 on: October 11, 2013, 06:06:32 PM »
Yeppp! author here and ready to answer your questions!

jj2007

  • Member
  • *****
  • Posts: 12691
  • Assembler is fun ;-)
    • MasmBasic
Re: Yeppp! High performance mathematical library
« Reply #19 on: October 11, 2013, 07:05:51 PM »
Yeppp! author here and ready to answer your questions!

Yeppp, that's an excellent service!

Welcome to the Forum. We have some looooong threads aiming at beating the best C compilers with even better hand-crafted assembler. If you have a frequently-used Yeppp! algo that needs a speedup, this is your chance :bgrin:

But of course, some of us will also be interested to produce an interface Yeppp! - Masm. GSL has already one.

Marat Dukhan

  • Guest
Re: Yeppp! High performance mathematical library
« Reply #20 on: October 11, 2013, 07:42:32 PM »
If you have a frequently-used Yeppp! algo that needs a speedup, this is your chance :bgrin:
All of Yeppp! is a collection of algos which need speedups. Contributors are welcome! :icon14:

But of course, some of us will also be interested to produce an interface Yeppp! - Masm.
This is easy. Most of Yeppp! is auto-generated, so one would only need to patch the code-generator.

dedndave

  • Member
  • *****
  • Posts: 8828
  • Still using Abacus 2.0
    • DednDave
Re: Yeppp! High performance mathematical library
« Reply #21 on: October 11, 2013, 08:11:17 PM »
welcome to the forum   :t

i haven't used the library yet, but i have looked it over
looks very interesting   :biggrin:

Gunther

  • Member
  • *****
  • Posts: 4070
  • Forgive your enemies, but never forget their names
Re: Yeppp! High performance mathematical library
« Reply #22 on: October 11, 2013, 10:25:25 PM »
Marat,

first things first: Welcome to the forum.

It's good to know that another experienced programmer is floating around here. I hope you'll have fun.

Gunther
Get your facts first, and then you can distort them.

Adamanteus

  • Member
  • **
  • Posts: 249
    • LLC "AMS"
Re: Yeppp! High performance mathematical library
« Reply #23 on: October 12, 2013, 02:33:19 AM »
Couldn't find a HPC approach.

Gunther

 YES - there only algos, but using threads or standalone MPI-like libraries is deal for it - or, "two in one" only modern  :eusa_boohoo:

qWord

  • Member
  • *****
  • Posts: 1475
  • The base type of a type is the type itself
    • SmplMath macros
Re: Yeppp! High performance mathematical library
« Reply #24 on: October 12, 2013, 04:29:00 AM »
Marat Dukhan,

is there any documentation (or literature) on the used methods for approximation? What precision-reference did you use to test the math functions (the folder unit-test/source/math is empty).

regards, qWord
MREAL macros - when you need floating point arithmetic while assembling!

Marat Dukhan

  • Guest
Re: Yeppp! High performance mathematical library
« Reply #25 on: October 12, 2013, 04:49:15 AM »
is there any documentation (or literature) on the used methods for approximation? What precision-reference did you use to test the math functions (the folder unit-test/source/math is empty).

The framework I developed for testing performance & accuracy is open sourced at bitbucket.org/MDukhan/hysteria. For accuracy testing it computes functions to 160-bit precision with GMP, and then converts the result to double-double. I also work on mathematical proofs of error bounds, and plan to release a tech report on that.

Gunther

  • Member
  • *****
  • Posts: 4070
  • Forgive your enemies, but never forget their names
Re: Yeppp! High performance mathematical library
« Reply #26 on: October 12, 2013, 05:11:36 AM »
Marat,

The framework I developed for testing performance & accuracy is open sourced at bitbucket.org/MDukhan/hysteria. For accuracy testing it computes functions to 160-bit precision with GMP, and then converts the result to double-double. I also work on mathematical proofs of error bounds, and plan to release a tech report on that.

Thank you for your fast reply. Your test framework looks impressive. Is double-double 128 bit? Which kind of error analysis do you use?

Gunther
Get your facts first, and then you can distort them.

Marat Dukhan

  • Guest
Re: Yeppp! High performance mathematical library
« Reply #27 on: October 12, 2013, 05:41:21 AM »
Is double-double 128 bit?
Yes, double-double is an unevaluated sum of two doubles. From high-level perspective you can imagine it as double with 106-bit mantissa.

Which kind of error analysis do you use?
To analyse error of interpolating polynomial, I split function domain into intervals of constant ULP, bound the absolute error of approximation (with Sollya) and evaluation (with Gappa), compute the total ULP error on each interval, and choose the maximum of all intervals. Other kinds of errors (range reduction and reconstruction) are analysed on case-by-case basis.

Gunther

  • Member
  • *****
  • Posts: 4070
  • Forgive your enemies, but never forget their names
Re: Yeppp! High performance mathematical library
« Reply #28 on: October 12, 2013, 06:21:26 AM »
To analyse error of interpolating polynomial, I split function domain into intervals of constant ULP, bound the absolute error of approximation (with Sollya) and evaluation (with Gappa), compute the total ULP error on each interval, and choose the maximum of all intervals. Other kinds of errors (range reduction and reconstruction) are analysed on case-by-case basis.

That's the approximation error, of course. My question has two directions. The other is: What's with the numerical stability? Do you use some backward error analysis (introduced by Wilkinson) or an error interval (see my PM)?

Gunther
Get your facts first, and then you can distort them.

qWord

  • Member
  • *****
  • Posts: 1475
  • The base type of a type is the type itself
    • SmplMath macros
Re: Yeppp! High performance mathematical library
« Reply #29 on: October 12, 2013, 06:25:15 AM »
Yes, double-double is an unevaluated sum of two doubles. From high-level perspective you can imagine it as double with 106-bit mantissa.
I'm right in when assuming the method described by T.J. Dekker[1]?

All of Yeppp! is a collection of algos which need speedups. Contributors are welcome! :icon14:
For the polynomials, it might be possible to reformulate them in such a way that the packed instructions (SSE2, add/mulpd) can be used.

[1]T.J. Dekker, "A Floating-Point Technique for Extending the Available Precision", Springer
MREAL macros - when you need floating point arithmetic while assembling!