Image Interpolation with Geometric Contour Stencils
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Macros | Functions
basic.h File Reference

Memory management, portable types, math constants, and timing. More...

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
Include dependency graph for basic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define Malloc(s)   MallocWithErrorMessage(s)
 Function to allocate a block of memory. More...
 
#define Realloc(p, s)   ReallocWithErrorMessage(p, s)
 Function to reallocate a block of memory. More...
 
#define Free(p)   free(p)
 Function to free memory. More...
 
#define M_2PI   6.28318530717958647692528676655900576
 The constant 2 pi. More...
 
#define M_PI   3.14159265358979323846264338327950288
 The constant pi. More...
 
#define M_PI_2   1.57079632679489661923132169163975144
 The constant pi/2. More...
 
#define M_PI_4   0.78539816339744830961566084581987572
 The constant pi/4. More...
 
#define M_PI_8   0.39269908169872415480783042290993786
 The constant pi/8. More...
 
#define M_SQRT2   1.41421356237309504880168872420969808
 The constant sqrt(2) More...
 
#define M_1_SQRT2   0.70710678118654752440084436210484904
 The constant 1/sqrt(2) More...
 
#define M_E   2.71828182845904523536028747135266250
 The natural number. More...
 
#define M_LOG2E   1.44269504088896340735992468100189213
 Log base 2 of the natural number. More...
 
#define M_LOG10E   0.43429448190325182765112891891660508
 Log base 10 of the natural number. More...
 
#define M_LN2   0.69314718055994530941723212145817657
 Natural log of 2. More...
 
#define M_LN10   2.30258509299404568401799145468436421
 Natural log of 10. More...
 
#define M_EULER   0.57721566490153286060651209008240243
 Euler number. More...
 
#define M_SQRT2PI   2.50662827463100050241576528481104525
 The constant sqrt(2 pi) Verified with Maxima using 80-digit precision. More...
 
#define ROUND(X)   (floor((X) + 0.5))
 Round double X. More...
 
#define ROUNDF(X)   (floor((X) + 0.5f))
 Round float X. More...
 
#define ATTRIBUTE_UNUSED
 
#define ATTRIBUTE_ALWAYSINLINE
 

Functions

void * MallocWithErrorMessage (size_t Size)
 malloc with an error message on failure. More...
 
void * ReallocWithErrorMessage (void *Ptr, size_t Size)
 realloc with an error message and free on failure. More...
 
void ErrorMessage (const char *Format,...)
 Redefine this function to customize error messages. More...
 
unsigned long Clock ()
 

Detailed Description

Memory management, portable types, math constants, and timing.

Author
Pascal Getreuer getre.nosp@m.uer@.nosp@m.gmail.nosp@m..com

This purpose of this file is to improve portability.

Types uint8_t, uint16_t, uint32_t should be defined as unsigned integer types such that

Similarly, int8_t, int16_t, int32_t should be defined as signed integer types such that

These definitions are implemented with types __int8, __int16, and __int32 under Windows and by including stdint.h under UNIX.

To define the math constants, math.h is included, and any of the following that were not defined by math.h are defined here according to the values from Hart & Cheney.

Copyright (c) 2010-2011, Pascal Getreuer All rights reserved.

This program is free software: you can use, modify and/or redistribute it under the terms of the simplified BSD License. You should have received a copy of this license along this program. If not, see http://www.opensource.org/licenses/bsd-license.html.

Definition in file basic.h.

Macro Definition Documentation

#define ATTRIBUTE_ALWAYSINLINE

Definition at line 169 of file basic.h.

#define ATTRIBUTE_UNUSED

Definition at line 168 of file basic.h.

#define Free (   p)    free(p)

Function to free memory.

Definition at line 67 of file basic.h.

#define M_1_SQRT2   0.70710678118654752440084436210484904

The constant 1/sqrt(2)

Definition at line 116 of file basic.h.

#define M_2PI   6.28318530717958647692528676655900576

The constant 2 pi.

Definition at line 92 of file basic.h.

#define M_E   2.71828182845904523536028747135266250

The natural number.

Definition at line 120 of file basic.h.

#define M_EULER   0.57721566490153286060651209008240243

Euler number.

Definition at line 140 of file basic.h.

#define M_LN10   2.30258509299404568401799145468436421

Natural log of 10.

Definition at line 136 of file basic.h.

#define M_LN2   0.69314718055994530941723212145817657

Natural log of 2.

Definition at line 132 of file basic.h.

#define M_LOG10E   0.43429448190325182765112891891660508

Log base 10 of the natural number.

Definition at line 128 of file basic.h.

#define M_LOG2E   1.44269504088896340735992468100189213

Log base 2 of the natural number.

Definition at line 124 of file basic.h.

#define M_PI   3.14159265358979323846264338327950288

The constant pi.

Definition at line 96 of file basic.h.

#define M_PI_2   1.57079632679489661923132169163975144

The constant pi/2.

Definition at line 100 of file basic.h.

#define M_PI_4   0.78539816339744830961566084581987572

The constant pi/4.

Definition at line 104 of file basic.h.

#define M_PI_8   0.39269908169872415480783042290993786

The constant pi/8.

Definition at line 108 of file basic.h.

#define M_SQRT2   1.41421356237309504880168872420969808

The constant sqrt(2)

Definition at line 112 of file basic.h.

#define M_SQRT2PI   2.50662827463100050241576528481104525

The constant sqrt(2 pi) Verified with Maxima using 80-digit precision.

Definition at line 148 of file basic.h.

#define Malloc (   s)    MallocWithErrorMessage(s)

Function to allocate a block of memory.

Definition at line 61 of file basic.h.

#define Realloc (   p,
 
)    ReallocWithErrorMessage(p, s)

Function to reallocate a block of memory.

Definition at line 64 of file basic.h.

#define ROUND (   X)    (floor((X) + 0.5))

Round double X.

Definition at line 152 of file basic.h.

#define ROUNDF (   X)    (floor((X) + 0.5f))

Round float X.

Definition at line 155 of file basic.h.

Function Documentation

unsigned long Clock ( )

Definition at line 75 of file basic.c.

void ErrorMessage ( const char *  Format,
  ... 
)

Redefine this function to customize error messages.

Definition at line 117 of file basic.c.

void* MallocWithErrorMessage ( size_t  Size)

malloc with an error message on failure.

Definition at line 90 of file basic.c.

void* ReallocWithErrorMessage ( void *  Ptr,
size_t  Size 
)

realloc with an error message and free on failure.

Definition at line 102 of file basic.c.