This file is indexed.

/usr/include/libwildmagic/Wm5IntrEllipsoid3Ellipsoid3.h is in libwildmagic-dev 5.13-1ubuntu3.

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
78
79
// Geometric Tools, LLC
// Copyright (c) 1998-2014
// Distributed under the Boost Software License, Version 1.0.
// http://www.boost.org/LICENSE_1_0.txt
// http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
//
// File Version: 5.5.0 (2010/10/15)

#ifndef WM5INTRELLIPSOID3ELLIPSOID3_H
#define WM5INTRELLIPSOID3ELLIPSOID3_H

#include "Wm5MathematicsLIB.h"
#include "Wm5Intersector.h"
#include "Wm5Ellipsoid3.h"
#include "Wm5Polynomial1.h"

namespace Wm5
{

template <typename Real>
class WM5_MATHEMATICS_ITEM IntrEllipsoid3Ellipsoid3
    : public Intersector<Real,Vector3<Real> >
{
public:
    IntrEllipsoid3Ellipsoid3 (const Ellipsoid3<Real>& ellipsoid0,
        const Ellipsoid3<Real>& ellipsoid1);

    // Object access.
    const Ellipsoid3<Real>& GetEllipsoid0 () const;
    const Ellipsoid3<Real>& GetEllipsoid1 () const;

    // A form of test query.  The ellipsoids are separated, intersecting
    // (at points or curves), ellipsoid0 is strictly contained in ellipsoid1,
    // or ellipsoid1 is strictly contained in ellipsoid0.
    enum Classification
    {
        EC_ELLIPSOIDS_SEPARATED,
        EC_ELLIPSOIDS_INTERSECTING,
        EC_ELLIPSOID0_CONTAINS_ELLIPSOID1,
        EC_ELLIPSOID1_CONTAINS_ELLIPSOID0
    };

    Classification GetClassification () const;

private:
    // Support functions for GetClassification().
    static void BisectF (Real d0, Real d1, Real d2, Real d0c0, Real d1c1,
        Real d2c2, Real smin, Real fmin, Real smax, Real fmax, Real& s,
        Real& f);

    static void BisectDF (Real d0, Real d1, Real d2, Real d0c0, Real d1c1,
        Real d2c2, Real smin, Real dfmin, Real smax, Real dfmax, Real& s,
        Real& df);

    static void GetRoots (Real d0, Real d1, Real d2, Real c0, Real c1,
        Real c2, int& numRoots, Real* roots);

    static void BisectF (Real d0, Real d1, Real d0c0, Real d1c1, Real smin,
        Real fmin, Real smax, Real fmax, Real& s, Real& f);

    static void BisectDF (Real d0, Real d1, Real d0c0, Real d1c1, Real smin,
        Real dfmin, Real smax, Real dfmax, Real& s, Real& df);

    static void GetRoots (Real d0, Real d1, Real c0, Real c1, int& numRoots,
        Real* roots);

    static void GetRoots (Real d0, Real c0, int& numRoots, Real* roots);

    // The objects to intersect.
    const Ellipsoid3<Real>* mEllipsoid0;
    const Ellipsoid3<Real>* mEllipsoid1;
};

typedef IntrEllipsoid3Ellipsoid3<float> IntrEllipsoid3Ellipsoid3f;
typedef IntrEllipsoid3Ellipsoid3<double> IntrEllipsoid3Ellipsoid3d;

}

#endif