Ignore:
Timestamp:
Jul 14, 2026, 9:26:24 PM (5 hours ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
a12816e7
Parents:
f41b161
Message:

formatting, turn off -Wdangling-pointer around small code fragments because of false positive

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/vec/vec4.hfa

    rf41b161 rc62013e  
    1919#include "vec.hfa"
    2020
    21 forall (T) {
     21forall( T ) {
    2222    struct vec4 {
    2323        T x, y, z, w;
     
    2525}
    2626
    27 forall (T) {
    28     static inline {
    29 
    30     void ?{}(vec4(T)& v, T x, T y, T z, T w) {
     27static inline forall( T ) {
     28    void ?{}( vec4( T )& v, T x, T y, T z, T w ) {
    3129        v.[x, y, z, w] = [x, y, z, w];
    3230    }
    3331
    34     forall(| zero_assign(T))
    35     void ?{}(vec4(T)& vec, zero_t) with (vec) {
     32    forall( | zero_assign( T ) )
     33    void ?{}( vec4( T )& vec, zero_t ) with ( vec ) {
    3634        x = y = z = w = 0;
    3735    }
    3836
    39     void ?{}(vec4(T)& vec, T val) with (vec) {
     37    void ?{}( vec4( T )& vec, T val ) with ( vec ) {
    4038        x = y = z = w = val;
    4139    }
    4240
    43     void ?{}(vec4(T)& vec, vec4(T) other) with (vec) {
     41    void ?{}( vec4( T )& vec, vec4( T ) other ) with ( vec ) {
    4442        [x,y,z,w] = other.[x,y,z,w];
    4543    }
    4644
    47     void ?=?(vec4(T)& vec, vec4(T) other) with (vec) {
     45    void ?=?( vec4( T )& vec, vec4( T ) other ) with ( vec ) {
    4846        [x,y,z,w] = other.[x,y,z,w];
    4947    }
    50     forall(| zero_assign(T))
    51     void ?=?(vec4(T)& vec, zero_t) with (vec) {
     48
     49    forall( | zero_assign( T ) )
     50    void ?=?( vec4( T )& vec, zero_t ) with ( vec ) {
    5251        x = y = z = w = 0;
    5352    }
     
    5655
    5756    // -
    58     forall(| subtract(T)) {
    59     vec4(T) ?-?(vec4(T) u, vec4(T) v) {
    60         return [u.x - v.x, u.y - v.y, u.z - v.z, u.w - v.w];
    61     }
    62     vec4(T)& ?-=?(vec4(T)& u, vec4(T) v) {
    63         u = u - v;
    64         return u;
    65     }
    66     }
    67     forall(| negate(T)) {
    68     vec4(T) -?(vec4(T) v) with (v) {
    69         return [-x, -y, -z, -w];
    70     }
    71     }
    72     forall(| { T --?(T&); }) {
    73     vec4(T)& --?(vec4(T)& v) {
    74         --v.x;
    75         --v.y;
    76         --v.z;
    77         --v.w;
    78         return v;
    79     }
    80     vec4(T) ?--(vec4(T)& v) {
    81         vec4(T) copy = v;
    82         --v;
    83         return copy;
    84     }
     57    forall( | subtract( T ) ) {
     58                vec4( T ) ?-?( vec4( T ) u, vec4( T ) v ) {
     59                        return [u.x - v.x, u.y - v.y, u.z - v.z, u.w - v.w];
     60                }
     61                vec4( T )& ?-=?( vec4( T )& u, vec4( T ) v ) {
     62                        u = u - v;
     63                        return u;
     64                }
     65    }
     66
     67    forall( | negate( T ) ) {
     68                vec4( T ) -?( vec4( T ) v ) with ( v ) {
     69                        return [-x, -y, -z, -w];
     70                }
     71    }
     72    forall( | { T --?( T&); }) {
     73                vec4( T )& --?( vec4( T )& v ) {
     74                        --v.x;
     75                        --v.y;
     76                        --v.z;
     77                        --v.w;
     78                        return v;
     79                }
     80                vec4( T ) ?--( vec4( T )& v ) {
     81                        vec4( T ) copy = v;
     82                        --v;
     83                        return copy;
     84                }
    8585    }
    8686
    8787    // +
    88     forall(| add(T)) {
    89     vec4(T) ?+?(vec4(T) u, vec4(T) v) {
    90         return [u.x + v.x, u.y + v.y, u.z + v.z, u.w + v.w];
    91     }
    92     vec4(T)& ?+=?(vec4(T)& u, vec4(T) v) {
    93         u = u + v;
    94         return u;
    95     }
    96     }
    97 
    98     forall(| { T ++?(T&); }) {
    99     vec4(T)& ++?(vec4(T)& v) {
    100         ++v.x;
    101         ++v.y;
    102         ++v.z;
    103         ++v.w;
    104         return v;
    105     }
    106     vec4(T) ?++(vec4(T)& v) {
    107         vec4(T) copy = v;
    108         ++v;
    109         return copy;
    110     }
     88    forall( | add( T ) ) {
     89                vec4( T ) ?+?( vec4( T ) u, vec4( T ) v ) {
     90                        return [u.x + v.x, u.y + v.y, u.z + v.z, u.w + v.w];
     91                }
     92                vec4( T )& ?+=?( vec4( T )& u, vec4( T ) v ) {
     93                        u = u + v;
     94                        return u;
     95                }
     96    }
     97
     98    forall( | { T ++?( T&); }) {
     99                vec4( T )& ++?( vec4( T )& v ) {
     100                        ++v.x;
     101                        ++v.y;
     102                        ++v.z;
     103                        ++v.w;
     104                        return v;
     105                }
     106                vec4( T ) ?++( vec4( T )& v ) {
     107                        vec4( T ) copy = v;
     108                        ++v;
     109                        return copy;
     110                }
    111111    }
    112112
    113113    // *
    114     forall(| multiply(T)) {
    115     vec4(T) ?*?(vec4(T) v, T scalar) with (v) {
    116         return [x * scalar, y * scalar, z * scalar, w * scalar];
    117     }
    118     vec4(T) ?*?(T scalar, vec4(T) v) {
    119         return v * scalar;
    120     }
    121     vec4(T) ?*?(vec4(T) u, vec4(T) v) {
    122         return [u.x * v.x, u.y * v.y, u.z * v.z, u.w * v.w];
    123     }
    124     vec4(T)& ?*=?(vec4(T)& v, T scalar) {
    125         v = v * scalar;
    126         return v;
    127     }
    128     vec4(T)& ?*=?(vec4(T)& u, vec4(T) v) {
    129         u = u * v;
    130         return u;
    131     }
     114    forall( | multiply( T ) ) {
     115                vec4( T ) ?*?( vec4( T ) v, T scalar ) with ( v ) {
     116                        return [x * scalar, y * scalar, z * scalar, w * scalar];
     117                }
     118                vec4( T ) ?*?( T scalar, vec4( T ) v ) {
     119                        return v * scalar;
     120                }
     121                vec4( T ) ?*?( vec4( T ) u, vec4( T ) v ) {
     122                        return [u.x * v.x, u.y * v.y, u.z * v.z, u.w * v.w];
     123                }
     124                vec4( T )& ?*=?( vec4( T )& v, T scalar ) {
     125                        v = v * scalar;
     126                        return v;
     127                }
     128                vec4( T )& ?*=?( vec4( T )& u, vec4( T ) v ) {
     129                        u = u * v;
     130                        return u;
     131                }
    132132    }
    133133
    134134    // /
    135     forall(| divide(T)) {
    136     vec4(T) ?/?(vec4(T) v, T scalar) with (v) {
     135    forall( | divide( T ) ) {
     136    vec4( T ) ?/?( vec4( T ) v, T scalar ) with ( v ) {
    137137        return [x / scalar, y / scalar, z / scalar, w / scalar];
    138138    }
    139     vec4(T) ?/?(vec4(T) u, vec4(T) v) {
     139    vec4( T ) ?/?( vec4( T ) u, vec4( T ) v ) {
    140140        return [u.x / v.x, u.y / v.y, u.z / v.z, u.w / v.w];
    141141    }
    142     vec4(T)& ?/=?(vec4(T)& v, T scalar) {
     142    vec4( T )& ?/=?( vec4( T )& v, T scalar ) {
    143143        v = v / scalar;
    144144        return v;
    145145    }
    146     vec4(T)& ?/=?(vec4(T)& u, vec4(T) v) {
     146    vec4( T )& ?/=?( vec4( T )& u, vec4( T ) v ) {
    147147        u = u / v;
    148148        return u;
     
    151151
    152152    // %
    153     forall(| { T ?%?(T,T); }) {
    154     vec4(T) ?%?(vec4(T) v, T scalar) with (v) {
    155         return [x % scalar, y % scalar, z % scalar, w % scalar];
    156     }
    157     vec4(T)& ?%=?(vec4(T)& u, T scalar) {
    158         u = u % scalar;
    159         return u;
    160     }
    161     vec4(T) ?%?(vec4(T) u, vec4(T) v) {
    162         return [u.x % v.x, u.y % v.y, u.z % v.z, u.w % v.w];
    163     }
    164     vec4(T)& ?%=?(vec4(T)& u, vec4(T) v) {
    165         u = u % v;
    166         return u;
    167     }
     153    forall( | { T ?%?( T,T ); }) {
     154                vec4( T ) ?%?( vec4( T ) v, T scalar ) with ( v ) {
     155                        return [x % scalar, y % scalar, z % scalar, w % scalar];
     156                }
     157                vec4( T )& ?%=?( vec4( T )& u, T scalar ) {
     158                        u = u % scalar;
     159                        return u;
     160                }
     161                vec4( T ) ?%?( vec4( T ) u, vec4( T ) v ) {
     162                        return [u.x % v.x, u.y % v.y, u.z % v.z, u.w % v.w];
     163                }
     164                vec4( T )& ?%=?( vec4( T )& u, vec4( T ) v ) {
     165                        u = u % v;
     166                        return u;
     167                }
    168168    }
    169169
    170170    // &
    171     forall(| { T ?&?(T,T); }) {
    172     vec4(T) ?&?(vec4(T) v, T scalar) with (v) {
    173         return [x & scalar, y & scalar, z & scalar, w & scalar];
    174     }
    175     vec4(T)& ?&=?(vec4(T)& u, T scalar) {
    176         u = u & scalar;
    177         return u;
    178     }
    179     vec4(T) ?&?(vec4(T) u, vec4(T) v) {
    180         return [u.x & v.x, u.y & v.y, u.z & v.z, u.w & v.w];
    181     }
    182     vec4(T)& ?&=?(vec4(T)& u, vec4(T) v) {
    183         u = u & v;
    184         return u;
    185     }
     171    forall( | { T ?&?( T,T ); }) {
     172                vec4( T ) ?&?( vec4( T ) v, T scalar ) with ( v ) {
     173                        return [x & scalar, y & scalar, z & scalar, w & scalar];
     174                }
     175                vec4( T )& ?&=?( vec4( T )& u, T scalar ) {
     176                        u = u & scalar;
     177                        return u;
     178                }
     179                vec4( T ) ?&?( vec4( T ) u, vec4( T ) v ) {
     180                        return [u.x & v.x, u.y & v.y, u.z & v.z, u.w & v.w];
     181                }
     182                vec4( T )& ?&=?( vec4( T )& u, vec4( T ) v ) {
     183                        u = u & v;
     184                        return u;
     185                }
    186186    }
    187187
    188188    // |
    189     forall(| { T ?|?(T,T); }) {
    190     vec4(T) ?|?(vec4(T) v, T scalar) with (v) {
    191         return [x | scalar, y | scalar, z | scalar, w | scalar];
    192     }
    193     vec4(T)& ?|=?(vec4(T)& u, T scalar) {
    194         u = u | scalar;
    195         return u;
    196     }
    197     vec4(T) ?|?(vec4(T) u, vec4(T) v) {
    198         return [u.x | v.x, u.y | v.y, u.z | v.z, u.w | v.w];
    199     }
    200     vec4(T)& ?|=?(vec4(T)& u, vec4(T) v) {
    201         u = u | v;
    202         return u;
    203     }
     189    forall( | { T ?|?( T,T ); }) {
     190                vec4( T ) ?|?( vec4( T ) v, T scalar ) with ( v ) {
     191                        return [x | scalar, y | scalar, z | scalar, w | scalar];
     192                }
     193                vec4( T )& ?|=?( vec4( T )& u, T scalar ) {
     194                        u = u | scalar;
     195                        return u;
     196                }
     197                vec4( T ) ?|?( vec4( T ) u, vec4( T ) v ) {
     198                        return [u.x | v.x, u.y | v.y, u.z | v.z, u.w | v.w];
     199                }
     200                vec4( T )& ?|=?( vec4( T )& u, vec4( T ) v ) {
     201                        u = u | v;
     202                        return u;
     203                }
    204204    }
    205205
    206206    // ^
    207     forall(| { T ?^?(T,T); }) {
    208     vec4(T) ?^?(vec4(T) v, T scalar) with (v) {
    209         return [x ^ scalar, y ^ scalar, z ^ scalar, w ^ scalar];
    210     }
    211     vec4(T)& ?^=?(vec4(T)& u, T scalar) {
    212         u = u ^ scalar;
    213         return u;
    214     }
    215     vec4(T) ?^?(vec4(T) u, vec4(T) v) {
    216         return [u.x ^ v.x, u.y ^ v.y, u.z ^ v.z, u.w ^ v.w];
    217     }
    218     vec4(T)& ?^=?(vec4(T)& u, vec4(T) v) {
    219         u = u ^ v;
    220         return u;
    221     }
     207    forall( | { T ?^?( T,T ); }) {
     208                vec4( T ) ?^?( vec4( T ) v, T scalar ) with ( v ) {
     209                        return [x ^ scalar, y ^ scalar, z ^ scalar, w ^ scalar];
     210                }
     211                vec4( T )& ?^=?( vec4( T )& u, T scalar ) {
     212                        u = u ^ scalar;
     213                        return u;
     214                }
     215                vec4( T ) ?^?( vec4( T ) u, vec4( T ) v ) {
     216                        return [u.x ^ v.x, u.y ^ v.y, u.z ^ v.z, u.w ^ v.w];
     217                }
     218                vec4( T )& ?^=?( vec4( T )& u, vec4( T ) v ) {
     219                        u = u ^ v;
     220                        return u;
     221                }
    222222    }
    223223
    224224    // <<
    225     forall(| { T ?<<?(T,T); }) {
    226     vec4(T) ?<<?(vec4(T) v, T scalar) with (v) {
    227         return [x << scalar, y << scalar, z << scalar, w << scalar];
    228     }
    229     vec4(T)& ?<<=?(vec4(T)& u, T scalar) {
    230         u = u << scalar;
    231         return u;
    232     }
    233     vec4(T) ?<<?(vec4(T) u, vec4(T) v) {
    234         return [u.x << v.x, u.y << v.y, u.z << v.z, u.w << v.w];
    235     }
    236     vec4(T)& ?<<=?(vec4(T)& u, vec4(T) v) {
    237         u = u << v;
    238         return u;
    239     }
     225    forall( | { T ?<<?( T,T ); }) {
     226                vec4( T ) ?<<?( vec4( T ) v, T scalar ) with ( v ) {
     227                        return [x << scalar, y << scalar, z << scalar, w << scalar];
     228                }
     229                vec4( T )& ?<<=?( vec4( T )& u, T scalar ) {
     230                        u = u << scalar;
     231                        return u;
     232                }
     233                vec4( T ) ?<<?( vec4( T ) u, vec4( T ) v ) {
     234                        return [u.x << v.x, u.y << v.y, u.z << v.z, u.w << v.w];
     235                }
     236                vec4( T )& ?<<=?( vec4( T )& u, vec4( T ) v ) {
     237                        u = u << v;
     238                        return u;
     239                }
    240240    }
    241241
    242242    // >>
    243     forall(| { T ?>>?(T,T); }) {
    244     vec4(T) ?>>?(vec4(T) v, T scalar) with (v) {
    245         return [x >> scalar, y >> scalar, z >> scalar, w >> scalar];
    246     }
    247     vec4(T)& ?>>=?(vec4(T)& u, T scalar) {
    248         u = u >> scalar;
    249         return u;
    250     }
    251     vec4(T) ?>>?(vec4(T) u, vec4(T) v) {
    252         return [u.x >> v.x, u.y >> v.y, u.z >> v.z, u.w >> v.w];
    253     }
    254     vec4(T)& ?>>=?(vec4(T)& u, vec4(T) v) {
    255         u = u >> v;
    256         return u;
    257     }
     243    forall( | { T ?>>?( T,T ); }) {
     244                vec4( T ) ?>>?( vec4( T ) v, T scalar ) with ( v ) {
     245                        return [x >> scalar, y >> scalar, z >> scalar, w >> scalar];
     246                }
     247                vec4( T )& ?>>=?( vec4( T )& u, T scalar ) {
     248                        u = u >> scalar;
     249                        return u;
     250                }
     251                vec4( T ) ?>>?( vec4( T ) u, vec4( T ) v ) {
     252                        return [u.x >> v.x, u.y >> v.y, u.z >> v.z, u.w >> v.w];
     253                }
     254                vec4( T )& ?>>=?( vec4( T )& u, vec4( T ) v ) {
     255                        u = u >> v;
     256                        return u;
     257                }
    258258    }
    259259
    260260    // ~
    261     forall(| { T ~?(T); })
    262     vec4(T) ~?(vec4(T) v) with (v) {
     261    forall( | { T ~?( T ); })
     262    vec4( T ) ~?( vec4( T ) v ) with ( v ) {
    263263        return [~x, ~y, ~z, ~w];
    264264    }
    265265
    266266    // relational
    267     forall(| equality(T)) {
    268     bool ?==?(vec4(T) u, vec4(T) v) with (u) {
    269         return x == v.x && y == v.y && z == v.z && w == v.w;
    270     }
    271     bool ?!=?(vec4(T) u, vec4(T) v) {
    272         return !(u == v);
    273     }
     267    forall( | equality( T ) ) {
     268                bool ?==?( vec4( T ) u, vec4( T ) v ) with ( u ) {
     269                        return x == v.x && y == v.y && z == v.z && w == v.w;
     270                }
     271                bool ?!=?( vec4( T ) u, vec4( T ) v ) {
     272                        return !( u == v );
     273                }
    274274    }
    275275
    276276    // Geometric functions
    277     forall(| add(T) | multiply(T))
    278     T dot(vec4(T) u, vec4(T) v) {
     277    forall( | add( T ) | multiply( T ) )
     278    T dot( vec4( T ) u, vec4( T ) v ) {
    279279        return u.x * v.x + u.y * v.y + u.z * v.z + u.w * v.w;
    280280    }
    281 
    282     } // static inline
    283281}
    284282
    285 forall(ostype &, T | writeable(T, ostype)) {
    286     ostype & ?|?(ostype & os, vec4(T) v) with (v) {
     283forall( ostype &, T | writeable( T, ostype ) ) {
     284    ostype & ?|?( ostype & os, vec4( T ) v ) with ( v ) {
    287285        return os | '<' | x | ',' | y | ',' | z | ',' | w | '>';
    288286    }
    289         OSTYPE_VOID_IMPL( os, vec4(T) )
     287        OSTYPE_VOID_IMPL( os, vec4( T ) )
    290288}
    291 
Note: See TracChangeset for help on using the changeset viewer.