This file is indexed.

/usr/include/CLHEP/GenericFunctions/SphericalNeumann.icc is in libclhep-dev 2.1.2.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// -*- C++ -*-
// $Id: SphericalNeumann.icc,v 1.4 2010/06/16 18:22:01 garren Exp $
#include "CLHEP/GenericFunctions/Sin.hh"
#include "CLHEP/GenericFunctions/Cos.hh"
#include "CLHEP/GenericFunctions/Variable.hh"
#include "gsl/gsl_sf_bessel.h"
#include <signal.h>

namespace Genfun {

FUNCTION_OBJECT_IMP(SphericalNeumann)

//----------------------------------------------------------------------------------//
// Implementation notes:  The Spherical Neumann function is implemented in terms of //
// lower order spherical neumann functions.  This is possible thanks to a recursion //
// relation.                                                                        //
//----------------------------------------------------------------------------------//

inline
SphericalNeumann::SphericalNeumann(unsigned int l):
  _l(l)
{
  create();
}

inline
SphericalNeumann::~SphericalNeumann() {
  delete _function;
}

inline
SphericalNeumann::SphericalNeumann(const SphericalNeumann & right):
_l(right._l)
{
  create();
}

inline
double SphericalNeumann::operator() (double x) const {
  //
  // First try the GSL implementation:
  //
  gsl_sf_result result;
  int status =gsl_sf_bessel_yl_e(_l, x,&result);
  if (status!=0) {
    std::cerr << "Warning, GSL function gsl_sf_bessel_yl_impl" 
	      << " return code" << status << std::endl;
    raise(SIGFPE);
  }
  return result.val;
  //return (*_function)(x);
}

inline
unsigned int SphericalNeumann::l() const {
  return _l;
}

inline
void SphericalNeumann::create() {
  Sin   sine;
  Cos cosine;
  Variable     x;
  if (_l==0) {
    _function = (-cosine/x).clone();
  }
  else if (_l==1) {
    _function = (-cosine/x/x - sine/x).clone();
  }
  else {
    SphericalNeumann j_minus(_l-1);
    SphericalNeumann j_minus_minus(_l-2);
    _function = ((2*_l-1)*j_minus/x - j_minus_minus).clone();;
  }
} 

} // end of namespace Genfun