Image Interpolation with Contour Stencils
Defines | 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.

Defines

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

Functions

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

Detailed Description

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

Author:
Pascal Getreuer <getreuer@gmail.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.


Define Documentation

#define ATTRIBUTE_ALWAYSINLINE

Definition at line 160 of file basic.h.

#define ATTRIBUTE_UNUSED

Definition at line 159 of file basic.h.

#define Free (   p)    free(p)

Function to free memory.

Definition at line 66 of file basic.h.

#define M_1_SQRT2   0.70710678118654752440084436210484904

The constant 1/sqrt(2)

Definition at line 115 of file basic.h.

#define M_2PI   6.28318530717958647692528676655900576

The constant 2 pi.

Definition at line 91 of file basic.h.

#define M_E   2.71828182845904523536028747135266250

The natural number.

Definition at line 119 of file basic.h.

#define M_EULER   0.57721566490153286060651209008240243

Euler number.

Definition at line 139 of file basic.h.

#define M_LN10   2.30258509299404568401799145468436421

Natural log of 10.

Definition at line 135 of file basic.h.

#define M_LN2   0.69314718055994530941723212145817657

Natural log of 2.

Definition at line 131 of file basic.h.

#define M_LOG10E   0.43429448190325182765112891891660508

Log base 10 of the natural number.

Definition at line 127 of file basic.h.

#define M_LOG2E   1.44269504088896340735992468100189213

Log base 2 of the natural number.

Definition at line 123 of file basic.h.

#define M_PI   3.14159265358979323846264338327950288

The constant pi.

Definition at line 95 of file basic.h.

#define M_PI_2   1.57079632679489661923132169163975144

The constant pi/2.

Definition at line 99 of file basic.h.

#define M_PI_4   0.78539816339744830961566084581987572

The constant pi/4.

Definition at line 103 of file basic.h.

#define M_PI_8   0.39269908169872415480783042290993786

The constant pi/8.

Definition at line 107 of file basic.h.

#define M_SQRT2   1.41421356237309504880168872420969808

The constant sqrt(2)

Definition at line 111 of file basic.h.

#define Malloc (   s)    MallocWithErrorMessage(s)

Function to allocate a block of memory.

Definition at line 60 of file basic.h.

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

Function to reallocate a block of memory.

Definition at line 63 of file basic.h.

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

Round double X.

Definition at line 143 of file basic.h.

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

Round float X.

Definition at line 146 of file basic.h.


Function Documentation

unsigned long Clock ( )

Definition at line 95 of file basic.c.

Here is the caller graph for this function:

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

Redefine this function to customize error messages.

Definition at line 59 of file basic.c.

Here is the caller graph for this function:

void* MallocWithErrorMessage ( size_t  Size)

malloc with an error message on failure.

Definition at line 32 of file basic.c.

Here is the call graph for this function:

void* ReallocWithErrorMessage ( void *  Ptr,
size_t  Size 
)

realloc with an error message and free on failure.

Definition at line 44 of file basic.c.

Here is the call graph for this function:

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines