POV-Ray : Newsgroups : povray.unofficial.patches : Defining new math functions : Defining new math functions Server Time
28 Apr 2024 02:59:08 EDT (-0400)
  Defining new math functions  
From: michaelk
Date: 20 Jul 2007 08:50:02
Message: <web.46a0aed0c23a6d9cc856a90@news.povray.org>
Hello all,
I woould like to ask how to best add support for special functions like Airy
or Bessel functions to povray. The straighforward approach would be to add a
new switch like NEED_SPECIAL (similar to NEED_INVHYP) and add these new
functions into
all the needed places, which seem to be the files:
#grep asinh `find source -name '*.*' -print`
source/express.cpp:               Val = asinh(Parse_Float_Param());
source/fnpovfpu.cpp:    asinh,          // 9
source/fnsyntax.cpp:                    result = asinh(node->child->number);
source/mathutil.cpp:DBL asinh(DBL x)
source/mathutil.h:DBL asinh(DBL x);
source/tokenize.cpp:  {ASINH_TOKEN, "asinh"},
and the (.h files). Functions of two arguments can be modelled on atan2 and
such
(by the way, what about three arguments?).

I need this for visualisation of some physical situations in physics. I
would not like to use spline approximations, the regular Bessel function
J_n(x), grows like x^n near the origin and looks like sin(x) for large
values of x, for example. While it still would be possible to define it
without resorting to source changes it would certainly be a lot slower and
more awkward.

So, is what I described above the best way to proceed or is there a better
way?

Thanks

Michael

PS: I have also posted this question to the advanced user group, since I
don't know, if I will need to patch in the end.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.