src/cx/compare.h

Mon, 18 Dec 2023 14:14:47 +0100

author
Mike Becker <universe@uap-core.de>
date
Mon, 18 Dec 2023 14:14:47 +0100
changeset 759
475335643af4
parent 650
77021e06b1a8
child 762
4523f6d42512
permissions
-rw-r--r--

increase version number to 3.1

remove per-file version information
from Doxygen output

     1 /*
     2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3  *
     4  * Copyright 2021 Mike Becker, Olaf Wintermann All rights reserved.
     5  *
     6  * Redistribution and use in source and binary forms, with or without
     7  * modification, are permitted provided that the following conditions are met:
     8  *
     9  *   1. Redistributions of source code must retain the above copyright
    10  *      notice, this list of conditions and the following disclaimer.
    11  *
    12  *   2. Redistributions in binary form must reproduce the above copyright
    13  *      notice, this list of conditions and the following disclaimer in the
    14  *      documentation and/or other materials provided with the distribution.
    15  *
    16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    26  * POSSIBILITY OF SUCH DAMAGE.
    27  */
    28 /**
    29  * \file compare.h
    30  * \brief A collection of simple compare functions.
    31  * \author Mike Becker
    32  * \author Olaf Wintermann
    33  * \copyright 2-Clause BSD License
    34  */
    36 #ifndef UCX_COMPARE_H
    37 #define UCX_COMPARE_H
    39 #include "common.h"
    41 #ifdef __cplusplus
    42 extern "C" {
    43 #endif
    45 /**
    46  * Compares two integers of type int.
    47  *
    48  * @param i1 pointer to integer one
    49  * @param i2 pointer to integer two
    50  * @return -1, if *i1 is less than *i2, 0 if both are equal,
    51  * 1 if *i1 is greater than *i2
    52  */
    53 int cx_cmp_int(void const *i1, void const *i2);
    55 /**
    56  * Compares two integers of type long int.
    57  *
    58  * @param i1 pointer to long integer one
    59  * @param i2 pointer to long integer two
    60  * @return -1, if *i1 is less than *i2, 0 if both are equal,
    61  * 1 if *i1 is greater than *i2
    62  */
    63 int cx_cmp_longint(void const *i1, void const *i2);
    65 /**
    66  * Compares two integers of type long long.
    67  *
    68  * @param i1 pointer to long long one
    69  * @param i2 pointer to long long two
    70  * @return -1, if *i1 is less than *i2, 0 if both are equal,
    71  * 1 if *i1 is greater than *i2
    72  */
    73 int cx_cmp_longlong(void const *i1, void const *i2);
    75 /**
    76  * Compares two integers of type int16_t.
    77  *
    78  * @param i1 pointer to int16_t one
    79  * @param i2 pointer to int16_t two
    80  * @return -1, if *i1 is less than *i2, 0 if both are equal,
    81  * 1 if *i1 is greater than *i2
    82  */
    83 int cx_cmp_int16(void const *i1, void const *i2);
    85 /**
    86  * Compares two integers of type int32_t.
    87  *
    88  * @param i1 pointer to int32_t one
    89  * @param i2 pointer to int32_t two
    90  * @return -1, if *i1 is less than *i2, 0 if both are equal,
    91  * 1 if *i1 is greater than *i2
    92  */
    93 int cx_cmp_int32(void const *i1, void const *i2);
    95 /**
    96  * Compares two integers of type int64_t.
    97  *
    98  * @param i1 pointer to int64_t one
    99  * @param i2 pointer to int64_t two
   100  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   101  * 1 if *i1 is greater than *i2
   102  */
   103 int cx_cmp_int64(void const *i1, void const *i2);
   105 /**
   106  * Compares two integers of type unsigned int.
   107  *
   108  * @param i1 pointer to unsigned integer one
   109  * @param i2 pointer to unsigned integer two
   110  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   111  * 1 if *i1 is greater than *i2
   112  */
   113 int cx_cmp_uint(void const *i1, void const *i2);
   115 /**
   116  * Compares two integers of type unsigned long int.
   117  *
   118  * @param i1 pointer to unsigned long integer one
   119  * @param i2 pointer to unsigned long integer two
   120  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   121  * 1 if *i1 is greater than *i2
   122  */
   123 int cx_cmp_ulongint(void const *i1, void const *i2);
   125 /**
   126  * Compares two integers of type unsigned long long.
   127  *
   128  * @param i1 pointer to unsigned long long one
   129  * @param i2 pointer to unsigned long long two
   130  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   131  * 1 if *i1 is greater than *i2
   132  */
   133 int cx_cmp_ulonglong(void const *i1, void const *i2);
   135 /**
   136  * Compares two integers of type uint16_t.
   137  *
   138  * @param i1 pointer to uint16_t one
   139  * @param i2 pointer to uint16_t two
   140  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   141  * 1 if *i1 is greater than *i2
   142  */
   143 int cx_cmp_uint16(void const *i1, void const *i2);
   145 /**
   146  * Compares two integers of type uint32_t.
   147  *
   148  * @param i1 pointer to uint32_t one
   149  * @param i2 pointer to uint32_t two
   150  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   151  * 1 if *i1 is greater than *i2
   152  */
   153 int cx_cmp_uint32(void const *i1, void const *i2);
   155 /**
   156  * Compares two integers of type uint64_t.
   157  *
   158  * @param i1 pointer to uint64_t one
   159  * @param i2 pointer to uint64_t two
   160  * @return -1, if *i1 is less than *i2, 0 if both are equal,
   161  * 1 if *i1 is greater than *i2
   162  */
   163 int cx_cmp_uint64(void const *i1, void const *i2);
   165 /**
   166  * Compares two real numbers of type float with precision 1e-6f.
   167  *
   168  * @param f1 pointer to float one
   169  * @param f2 pointer to float two
   170  * @return -1, if *f1 is less than *f2, 0 if both are equal,
   171  * 1 if *f1 is greater than *f2
   172  */
   174 int cx_cmp_float(void const *f1, void const *f2);
   176 /**
   177  * Compares two real numbers of type double with precision 1e-14.
   178  *
   179  * @param d1 pointer to double one
   180  * @param d2 pointer to double two
   181  * @return -1, if *d1 is less than *d2, 0 if both are equal,
   182  * 1 if *d1 is greater than *d2
   183  */
   184 int cx_cmp_double(
   185         void const *d1,
   186         void const *d2
   187 );
   189 /**
   190  * Compares the integer representation of two pointers.
   191  *
   192  * @param ptr1 pointer to pointer one (intptr_t const*)
   193  * @param ptr2 pointer to pointer two (intptr_t const*)
   194  * @return -1 if *ptr1 is less than *ptr2, 0 if both are equal,
   195  * 1 if *ptr1 is greater than *ptr2
   196  */
   197 int cx_cmp_intptr(
   198         void const *ptr1,
   199         void const *ptr2
   200 );
   202 /**
   203  * Compares the unsigned integer representation of two pointers.
   204  *
   205  * @param ptr1 pointer to pointer one (uintptr_t const*)
   206  * @param ptr2 pointer to pointer two (uintptr_t const*)
   207  * @return -1 if *ptr1 is less than *ptr2, 0 if both are equal,
   208  * 1 if *ptr1 is greater than *ptr2
   209  */
   210 int cx_cmp_uintptr(
   211         void const *ptr1,
   212         void const *ptr2
   213 );
   215 #ifdef __cplusplus
   216 } // extern "C"
   217 #endif
   219 #endif //UCX_COMPARE_H

mercurial