Boost logo

Boost :

Subject: Re: [boost] Google Summer of Code 2013 - Boost.org - Boost.Multiprecision
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2013-04-12 06:45:12


> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Saurav
> Sent: Friday, April 12, 2013 9:20 AM
> To: boost_at_[hidden]
> Subject: [boost] Google Summer of Code 2013 - Boost.org - Boost.Multiprecision
>
> Hi!
>
> I am a CS undergraduate student and I really want to work on
> Boost.Multiprecision<https://svn.boost.org/trac/boost/wiki/SoC2013#Boost.Multiprecision>.
> C++ has been my favorite programming language and I find GSoC 2013 a
> wonderful opportunity to create something valuable with it, while getting some 'value' out of it
for myself.
 
> That's all from my side. I wish to get through to Christopher Kormanyo, the mentor for the project
I am
> interested in, to discuss more specifically about the further steps.
>
I hope you are studying

https://svn.boost.org/trac/boost/wiki/SoC2013#Boost.Multiprecision

http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/index.html

and especially

http://www.loria.fr/~zimmerma/mca/mca-cup-0.5.1.pdf

If you study the existing decimal (radix = 10) implementation, you will see that multiprecision
makes it rather complicated, even if the underlying algorithms are not.

It must be specific for radix = 2 to be fast.

Ask again if you are still interested after studying these documents, and some of the code.

It would be useful to see if you can build some of the examples using Boost.Multiprecision decimal,
perhaps using a Boost.Math function or two. Extra marks for devising and running a Boost.Test for
what you compute.

You could send or post a zip of your files and output.

And/or you might also try out this example:

------------------------------------------------------------

Consider the sinc function known from fields such
as optics, scattering, and radiation theory.

sinc(x) = sin(x) / x

Write a C++ program with a single template for
the sinc function that handles float, double, long double,
and the cpp_dec_float_50 type from Boost.Multiprecision.

Please handle negative arguments elegantly using
simple reflection.

For arguments very close to zero, use
std::numeric_limits<T>::epsilon() to find the
cutoff where the function should return 1.

Describe in a few sentences how your solution uses
templates to create a generic numerical program for
the sinc function.

Verify your numerical results for all four
data types, for example, with data from
Wolfram's Alpha.

The command:

Table[N[Sin[x]/x, 60], {x, Pi/32, Pi/2, Pi/32}]

will create a nice data table with 60 decimal digits
of precision. The value at x = 0 is, of course, 1.

Have fun!

Paul

---
Paul A. Bristow,
Prizet Farmhouse, Kendal LA8 8AB  UK
+44 1539 561830  07714330204
pbristow_at_[hidden]

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk