This file is indexed.

/usr/include/af/internal.h is in libarrayfire-dev 3.3.2+dfsg1-4ubuntu1.

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
/*******************************************************
 * Copyright (c) 2016, ArrayFire
 * All rights reserved.
 *
 * This file is distributed under 3-clause BSD license.
 * The complete license agreement can be obtained at:
 * http://arrayfire.com/licenses/BSD-3-Clause
 ********************************************************/

#pragma once
#include <af/defines.h>
#include <af/dim4.hpp>

#ifdef __cplusplus
namespace af
{
    class array;

#if AF_API_VERSION >= 33
    /**
       \param[in] data is the raw data pointer.
       \param[in] offset specifies the number of elements to skip.
       \param[in] dims specifies the dimensions for the region of interest.
       \param[in] strides specifies the distance between each element of a given dimension.
       \param[in] ty specifies the data type of \p data.
       \param[in] location specifies if the data is on host or the device.

       \note: If \p location is `afHost`, a memory copy is performed.

       \returns an af::array() with specified offset, dimensions and strides.

       \ingroup internal_func_create
    */
    AFAPI array createStridedArray(const void *data, const dim_t offset,
                                   const dim4 dims, const dim4 strides,
                                   const af::dtype ty,
                                   const af::source location);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] in An multi dimensional array.
       \returns af::dim4() containing distance between consecutive elements in each dimension.

       \ingroup internal_func_strides
    */
    AFAPI dim4 getStrides(const array &in);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] in An multi dimensional array.
       \returns offset from the starting location of data pointer specified in number of elements.

       \ingroup internal_func_offset
    */
    AFAPI dim_t getOffset(const array &in);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] in An multi dimensional array.
       \returns Returns the raw pointer location to the array.

       \note This pointer may be shared with other arrays. Use this function with caution.

       \ingroup internal_func_rawptr
    */
    AFAPI void *getRawPtr(const array &in);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] in An multi dimensional array.
       \returns a boolean specifying if all elements in the array are contiguous.

       \ingroup internal_func_linear
    */
    AFAPI bool isLinear(const array &in);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] in An multi dimensional array.
       \returns a boolean specifying if the array owns the raw pointer. It is false if it is a sub array.

       \ingroup internal_func_owner
    */
    AFAPI bool isOwner(const array &in);
#endif
}
#endif

#ifdef __cplusplus
extern "C"
{
#endif

#if AF_API_VERSION >= 33
    /**
       \param[out] arr an af_array with specified offset, dimensions and strides.
       \param[in] data is the raw data pointer.
       \param[in] offset specifies the number of elements to skip.
       \param[in] ndims specifies the number of array dimensions.
       \param[in] dims specifies the dimensions for the region of interest.
       \param[in] strides specifies the distance between each element of a given dimension.
       \param[in] ty specifies the data type of \p data.
       \param[in] location specifies if the data is on host or the device.

       \note If \p location is `afHost`, a memory copy is performed.

       \ingroup internal_func_create
    */
    AFAPI af_err af_create_strided_array(af_array *arr,
                                         const void *data,
                                         const dim_t offset,
                                         const unsigned ndims,
                                         const dim_t *const dims,
                                         const dim_t *const strides,
                                         const af_dtype ty,
                                         const af_source location);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] arr An multi dimensional array.
       \param[out] s0 distance between each consecutive element along first  dimension.
       \param[out] s1 distance between each consecutive element along second dimension.
       \param[out] s2 distance between each consecutive element along third  dimension.
       \param[out] s3 distance between each consecutive element along fourth dimension.

       \ingroup internal_func_strides
    */
    AFAPI af_err af_get_strides(dim_t *s0, dim_t *s1, dim_t *s2, dim_t *s3, const af_array arr);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] arr An multi dimensional array.
       \param[out] offset: Offset from the starting location of data pointer specified in number of elements. distance between each consecutive element along first  dimension.

       \ingroup internal_func_offset
    */
    AFAPI af_err af_get_offset(dim_t *offset, const af_array arr);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] arr An multi dimensional array.
       \param[out] ptr the raw pointer location to the array.

       \note This pointer may be shared with other arrays. Use this function with caution.

       \ingroup internal_func_rawptr
    */
    AFAPI af_err af_get_raw_ptr(void **ptr, const af_array arr);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] arr An multi dimensional array.
       \param[out] result: a boolean specifying if all elements in the array are contiguous.

       \ingroup internal_func_linear
    */
    AFAPI af_err af_is_linear(bool *result, const af_array arr);
#endif

#if AF_API_VERSION >= 33
    /**
       \param[in] arr An multi dimensional array.
       \param[out] result: a boolean specifying if the array owns the raw pointer. It is false if it is a sub array.

       \ingroup internal_func_owner
    */
    AFAPI af_err af_is_owner(bool *result, const af_array arr);
#endif

#ifdef __cplusplus
}
#endif