Jump to content

Recommended Posts

Posted

Hello every One!!!

 

 

Plz suggest a topic for my master thesis!.... My domain is software engineering and I am also interesting in Databases and Object analysis and design (OOAD).

 

 

I dnt have any idea about thesis topic selection :(

 

Thank In advance

  • 1 month later...
Posted

Hi Fizfiz! I must come too late, and this isn't database engineering but numerical analysis, sorry for that... But maybe it serves your later, or someone else.

 

It might be possible - perhaps - to improve the math function library for complex numbers.

 

The libraries I've seen add their layer to functions libraries on real numbers. This can be very inefficient: see how complicated it is to prevent all undue overflow errors in the complex division function given in "numerical receipes in C", a full page of tests and divisions. It is also indirect.

 

For the functions whose real version is not hard-wired but programmed or micro-programmed, maybe the algorithm can be adapted directly to complex numbers.

 

-----

 

Example: the real division is a multiplication by the reciprocal which is computed by an iterative algorithm, of numerical analysis type, often Newton-Raphson

http://en.wikipedia....aphson_division

and this algorithm may well fit complex numbers with little effort.

 

-----

 

Example: the real square root is an iterative algorithm of numerical analysis type, like these

http://en.wikipedia....terative_method

http://en.wikipedia....al_square_roots

again, such a method could run on complex numbers. Here Wiki seems to suggest the standard method

http://en.wikipedia...._complex_square

which would be pretty inefficient as the moduli demand already a square root.

 

-----

 

Example: the logarithm.

  • It is computed on real numbers in base 2 using the floating point processor's normalisation. The exponent gives the heaviest bits and is discarded, then the mantissa is repeatedly squared and the exponent gives more bits and is discarded.
  • Could it work on complex numbers? Harvest the biggest exponent of real or imaginary parts, subtract it from both. Iterate: square the complex, again harvest the biggest of both exponents, subtract from both.
  • On complex numbers, I vaguely suppose that the bits of the next iteration's harvested exponent can overlap with the ones already obtained, but if you add the (shifted) contributions instead of concatenating them it may be exact and with no time penalty.
  • By this way you obtain the logarithm of the modulus, which is the real part of the logarithm.

-----

 

There may be other candidate functions: trigo, hyperbolic, exponential... More complicated and less frequent, most special functions are complex by nature.

 

I suppose the Newton-Raphson methods would transpose directly, but for a library, you have to check if they can underflow, overflow, how to minimise rounding errors... Maybe a mere normalisation at the beginning protects the whole function, which would again save time against a complex layer on real functions. Beware I didn't review all existing libraries.

 

Hardware (hi there) able to normalize two floats according to the biggest of both exponents (here considered the real and imaginary parts) would speed up the functions. It should bring the biggest part between 0.5 and 1, scale the other part identically, and return the exponent of the scaling factor. No idea if it's already available.

 

Marc Schaefer, aka Enthalpy

Posted (edited)

To get the imaginary part of the complex logarithm, which is the argument of the input complex, one can take advantage of the same successive squarings used tio compute the real part.

 

When you square a complex, its argument (its angle, in polar coordinates) doubles, but modulo one turn. So on successive squarings, the sign of the imaginary part gives one bit of the argument at each step. You get the argument in units of turns.

 

This method looks more interesting now.

 

Usable for atan2(r,i) as well but probably less interesting if you don't need a log.

 

Marc Schaefer, aka Enthalpy

Edited by Enthalpy
Posted (edited)
I am also interesting in Databases and Object analysis and design (OOAD).

I dnt have any idea about thesis topic selection

 

You are interested in these topics? Find some problems in them. That requires experience in the first place... Then solve or at least study the specific area of problems you find which can potentially be improved. Good luck. If you don't have enough experience to even recognize issues or topics of interest associated with your fields, then what the heck are you doing with your life? Seriously. Go talk to your professors or whatever.

Edited by Ben Bowen

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.