This file is indexed.

/usr/include/gf2x/gf2x-small.h is in libgf2x-dev 1.2-5.

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
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/* This file is part of the gf2x library.

   Copyright 2007, 2008, 2009, 2010, 2012, 2013, 2015
   Richard Brent, Pierrick Gaudry, Emmanuel Thome', Paul Zimmermann

   This program is free software; you can redistribute it and/or modify it
   under the terms of either:
    - If the archive contains a file named toom-gpl.c (not a trivial
    placeholder), 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.
    - If the archive contains a file named toom-gpl.c which is a trivial
    placeholder, the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 2.1 of the License, or
    (at your option) any later version.
   
   This program 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 license text for more details.
   
   You should have received a copy of the GNU General Public License as
   well as the GNU Lesser General Public License along with this program;
   see the files COPYING and COPYING.LIB.  If not, write to the Free
   Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
   02110-1301, USA.
*/

/* Main file for Karatsuba and Toom-Cook multiplication over GF(2)[x]. */

#ifndef GF2X_SMALL_H_
#define GF2X_SMALL_H_

#include "gf2x.h"

/* the header files included here will either put macros in the
 * namespaces GF2X_* or gf2x_*, or possibly macros with generally
 * accepted meaning such as GF2X_MAYBE_UNUSED and such */
#include "gf2x/gf2x-config-export.h"    /* GF2X_HAVE_* macros */
#include "gf2x/gf2x-impl-export.h"      /* utility macros */
#include "gf2x/gf2x-thresholds.h"       /* GF2X_STORAGE_CLASS_* macros */

#ifdef __cplusplus
extern "C" {
#endif

GF2X_STORAGE_CLASS_mul1 void
gf2x_mul1(unsigned long *c, unsigned long a, unsigned long b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul_1_n unsigned long
gf2x_mul_1_n(unsigned long *cp, const unsigned long *bp, long sb, unsigned long a)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_addmul_1_n unsigned long
gf2x_addmul_1_n(unsigned long *dp,
        const unsigned long *cp, const unsigned long* bp,
        long sb, unsigned long a)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul2 void
gf2x_mul2(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul3 void
gf2x_mul3(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul4 void
gf2x_mul4(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul5 void
gf2x_mul5(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul6 void
gf2x_mul6(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul7 void
gf2x_mul7(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul8 void
gf2x_mul8(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;
GF2X_STORAGE_CLASS_mul9 void
gf2x_mul9(unsigned long *c, const unsigned long *a, const unsigned long *b)
        GF2X_MAYBE_UNUSED;

#ifdef __cplusplus
}
#endif

/* This seems rather useless. The point here is that for tuning, we must
 * define the sub-functions of the to-be-tuned implementation differently
 * from the ones of the currently enabled implementation (we use tuning_
 * as a prefix). That implementation might happen to be actually the same
 * code. If we don't do this, we end up with duplicate static functions
 * in the compilation units.
 */
#ifndef GF2X_FUNC
#define GF2X_FUNC(x)       reserved_ ## x
#endif

/* This file provides all the small-sized gf2x_mul1..gf2x_mul9 routines. It is
 * meant to be possibly included directly by applications. */

#include "gf2x/gf2x_mul1.h"
#include "gf2x/gf2x_mul2.h"
#include "gf2x/gf2x_mul3.h"
#include "gf2x/gf2x_mul4.h"
#include "gf2x/gf2x_mul5.h"
#include "gf2x/gf2x_mul6.h"
#include "gf2x/gf2x_mul7.h"
#include "gf2x/gf2x_mul8.h"
#include "gf2x/gf2x_mul9.h"

#ifdef TUNING
#include "tuning_undef_wrapper.h"
#endif

#endif  /* GF2X_SMALL_H_ */