summaryrefslogtreecommitdiff
path: root/support/dktools/dk4maau32.ctr
diff options
context:
space:
mode:
Diffstat (limited to 'support/dktools/dk4maau32.ctr')
-rw-r--r--support/dktools/dk4maau32.ctr282
1 files changed, 0 insertions, 282 deletions
diff --git a/support/dktools/dk4maau32.ctr b/support/dktools/dk4maau32.ctr
deleted file mode 100644
index 59d6e0d308..0000000000
--- a/support/dktools/dk4maau32.ctr
+++ /dev/null
@@ -1,282 +0,0 @@
-%% options
-
-copyright owner = Dirk Krause
-copyright year = 2016-xxxx
-SPDX-License-Identifier: BSD-3-Clause
-
-
-%% header
-
-/** @file dk4maau32.h Operations on uint32_t data.
-
- CRT on Windows: Optional.
-*/
-
-
-#ifndef DK4CONF_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4conf.h"
-#else
-#include <dktools-4/dk4conf.h>
-#endif
-#endif
-
-#ifndef DK4TYPES_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4types.h"
-#else
-#include <dktools-4/dk4types.h>
-#endif
-#endif
-
-#ifndef DK4ERROR_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4error.h"
-#else
-#include <dktools-4/dk4error.h>
-#endif
-#endif
-
-#if DK4_HAVE_STDLIB_H
-#ifndef DK4_STDLIB_H_INCLUDED
-#include <stdlib.h>
-#define DK4_STDLIB_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_SYS_TYPES_H
-#ifndef DK4_SYS_TYPES_H_INCLUDED
-#include <sys/types.h>
-#define DK4_SYS_TYPES_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_STDINT_H
-#ifndef DK4_STDINT_H_INCLUDED
-#include <stdint.h>
-#define DK4_STDINT_H_INCLUDED 1
-#endif
-#endif
-
-#ifndef UINT32_MAX
-#define UINT32_MAX ((uint32_t)4294967295UL)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Addition of uint32_t.
- @param a Left operand.
- @param b Right operand.
- @param erp Error report, may be NULL.
- @return Operation result.
-
- Error codes:
- - DK4_E_INVALID_ARGUMENTS<br>
- if a or b is out of range
- - DK4_E_MATH_OVERFLOW<br>
- if a mathematical overfow occured.
-*/
-uint32_t
-dk4ma_uint32_t_add(uint32_t a, uint32_t b, dk4_er_t *erp);
-
-/** Substraction of uint32_t.
- @param a Left operand.
- @param b Right operand.
- @param erp Error report, may be NULL.
- @return Operation result.
-
- Error codes:
- - DK4_E_INVALID_ARGUMENTS<br>
- if a or b is out of range
- - DK4_E_MATH_OVERFLOW<br>
- if a mathematical overfow occured.
-*/
-uint32_t
-dk4ma_uint32_t_sub(uint32_t a, uint32_t b, dk4_er_t *erp);
-
-/** Multiplication of uint32_t.
- @param a Left operand.
- @param b Right operand.
- @param erp Error report, may be NULL.
- @return Operation result.
-
- Error codes:
- - DK4_E_INVALID_ARGUMENTS<br>
- if a or b is out of range
- - DK4_E_MATH_OVERFLOW<br>
- if a mathematical overfow occured.
-*/
-uint32_t
-dk4ma_uint32_t_mul(uint32_t a, uint32_t b, dk4_er_t *erp);
-
-/** Division of uint32_t.
- @param a Left operand.
- @param b Right operand.
- @param erp Error report, may be NULL.
- @return Operation result.
-
- Error codes:
- - DK4_E_INVALID_ARGUMENTS<br>
- if a or b is out of range
- - DK4_E_MATH_OVERFLOW<br>
- if a mathematical overfow occured,
- - DK4_E_MATH_DIVZERO<br>
- if b is 0.
-*/
-uint32_t
-dk4ma_uint32_t_div(uint32_t a, uint32_t b, dk4_er_t *erp);
-
-/** Convert dk4_um_t value to uint32_t.
- @param u Value to convert.
- @param erp Error report, may be NULL.
- @return Conversion result.
-
- Error codes: DK4_E_MATH_OVERFLOW.
-*/
-uint32_t
-dk4ma_uint32_from(dk4_um_t u, dk4_er_t *erp);
-
-/** Convert double to signed char.
- @param d Value to convert.
- @param erp Error report, may be NULL.
- @return Conversion result.
-
- Error codes: DK4_E_OVERFLOW.
-*/
-uint32_t
-dk4ma_uint32_from_double(double d, dk4_er_t *erp);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-%% module
-
-#include "dk4conf.h"
-#include "dk4maau32.h"
-
-
-
-$!trace-include
-
-
-
-uint32_t
-dk4ma_uint32_t_add(uint32_t a, uint32_t b, dk4_er_t *erp)
-{
- if (DK4_U32_MAX < a) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if (DK4_U32_MAX < b) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if ((DK4_U32_MAX - a) < b) {
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- }
-finished:
- return (a + b);
-}
-
-
-
-uint32_t
-dk4ma_uint32_t_sub(uint32_t a, uint32_t b, dk4_er_t *erp)
-{
- if (DK4_U32_MAX < a) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if (DK4_U32_MAX < b) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if (b > a) {
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- }
-finished:
- return (a - b);
-}
-
-
-
-uint32_t
-dk4ma_uint32_t_mul(uint32_t a, uint32_t b, dk4_er_t *erp)
-{
- if (DK4_U32_MAX < a) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if (DK4_U32_MAX < b) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if ((0L < a) && (0L < b)) {
- if ((DK4_U32_MAX / a) < b) {
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- }
- }
-finished:
- return (a * b);
-}
-
-
-
-uint32_t
-dk4ma_uint32_t_div(uint32_t a, uint32_t b, dk4_er_t *erp)
-{
- uint32_t back = 0;
- if (DK4_U32_MAX < a) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
- if (DK4_U32_MAX < b) {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- goto finished;
- }
-finished:
- if (0L != b) {
- back = a / b;
- } else {
- dk4error_set_simple_error_code(erp, DK4_E_MATH_DIVZERO);
- }
- return back;
-}
-
-
-
-uint32_t
-dk4ma_uint32_from(dk4_um_t u, dk4_er_t *erp)
-{
- if ((dk4_um_t)(DK4_U32_MAX) < u) {
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- }
- return ((uint32_t)u);
-}
-
-
-
-
-uint32_t
-dk4ma_uint32_from_double(double d, dk4_er_t *erp)
-{
- uint32_t back = 0UL;
- if ((double)(DK4_U32_MAX) < d) {
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- back = DK4_U32_MAX;
- }
- else {
- if (0.0 > d) {
- dk4error_set_simple_error_code(erp,DK4_E_MATH_OVERFLOW);
- }
- else {
- back = (uint32_t)d;
- }
- }
- return back;
-}
-