X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fm%2Fspecfun%2Fbessel.m;fp=octave_packages%2Fm%2Fspecfun%2Fbessel.m;h=ee70433dacfe1f17888e422bedfbc9e4adad097c;hp=0000000000000000000000000000000000000000;hb=1c0469ada9531828709108a4882a751d2816994a;hpb=63de9f36673d49121015e3695f2c336ea92bc278 diff --git a/octave_packages/m/specfun/bessel.m b/octave_packages/m/specfun/bessel.m new file mode 100644 index 0000000..ee70433 --- /dev/null +++ b/octave_packages/m/specfun/bessel.m @@ -0,0 +1,94 @@ +## Copyright (C) 1996-2012 John W. Eaton +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Loadable Function} {[@var{j}, @var{ierr}] =} besselj (@var{alpha}, @var{x}, @var{opt}) +## @deftypefnx {Loadable Function} {[@var{y}, @var{ierr}] =} bessely (@var{alpha}, @var{x}, @var{opt}) +## @deftypefnx {Loadable Function} {[@var{i}, @var{ierr}] =} besseli (@var{alpha}, @var{x}, @var{opt}) +## @deftypefnx {Loadable Function} {[@var{k}, @var{ierr}] =} besselk (@var{alpha}, @var{x}, @var{opt}) +## @deftypefnx {Loadable Function} {[@var{h}, @var{ierr}] =} besselh (@var{alpha}, @var{k}, @var{x}, @var{opt}) +## Compute Bessel or Hankel functions of various kinds: +## +## @table @code +## @item besselj +## Bessel functions of the first kind. If the argument @var{opt} is supplied, +## the result is multiplied by @code{exp(-abs(imag(x)))}. +## +## @item bessely +## Bessel functions of the second kind. If the argument @var{opt} is supplied, +## the result is multiplied by @code{exp(-abs(imag(x)))}. +## +## @item besseli +## Modified Bessel functions of the first kind. If the argument @var{opt} is +## supplied, +## the result is multiplied by @code{exp(-abs(real(x)))}. +## +## @item besselk +## Modified Bessel functions of the second kind. If the argument @var{opt} is +## supplied, +## the result is multiplied by @code{exp(x)}. +## +## @item besselh +## Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} +## = 2) kind. If the argument @var{opt} is supplied, the result is multiplied +## by +## @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for +## @var{k} = 2. +## @end table +## +## If @var{alpha} is a scalar, the result is the same size as @var{x}. +## If @var{x} is a scalar, the result is the same size as @var{alpha}. +## If @var{alpha} is a row vector and @var{x} is a column vector, the +## result is a matrix with @code{length (@var{x})} rows and +## @code{length (@var{alpha})} columns. Otherwise, @var{alpha} and +## @var{x} must conform and the result will be the same size. +## +## The value of @var{alpha} must be real. The value of @var{x} may be +## complex. +## +## If requested, @var{ierr} contains the following status information +## and is the same size as the result. +## +## @enumerate 0 +## @item +## Normal return. +## +## @item +## Input error, return @code{NaN}. +## +## @item +## Overflow, return @code{Inf}. +## +## @item +## Loss of significance by argument reduction results in less than +## half of machine accuracy. +## +## @item +## Complete loss of significance by argument reduction, return @code{NaN}. +## +## @item +## Error---no computation, algorithm termination condition not met, +## return @code{NaN}. +## @end enumerate +## @end deftypefn + +function bessel () + error ("bessel: you must use besselj, bessely, besseli, or besselk"); +endfunction + +%!error bessel ()