1// This file is part of Eigen, a lightweight C++ template library 2// for linear algebra. 3// 4// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com> 5// 6// This Source Code Form is subject to the terms of the Mozilla 7// Public License v. 2.0. If a copy of the MPL was not distributed 8// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 10#ifndef EIGEN2_MEMORY_H 11#define EIGEN2_MEMORY_H 12 13namespace Eigen { 14 15inline void* ei_aligned_malloc(size_t size) { return internal::aligned_malloc(size); } 16inline void ei_aligned_free(void *ptr) { internal::aligned_free(ptr); } 17inline void* ei_aligned_realloc(void *ptr, size_t new_size, size_t old_size) { return internal::aligned_realloc(ptr, new_size, old_size); } 18inline void* ei_handmade_aligned_malloc(size_t size) { return internal::handmade_aligned_malloc(size); } 19inline void ei_handmade_aligned_free(void *ptr) { internal::handmade_aligned_free(ptr); } 20 21template<bool Align> inline void* ei_conditional_aligned_malloc(size_t size) 22{ 23 return internal::conditional_aligned_malloc<Align>(size); 24} 25template<bool Align> inline void ei_conditional_aligned_free(void *ptr) 26{ 27 internal::conditional_aligned_free<Align>(ptr); 28} 29template<bool Align> inline void* ei_conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size) 30{ 31 return internal::conditional_aligned_realloc<Align>(ptr, new_size, old_size); 32} 33 34template<typename T> inline T* ei_aligned_new(size_t size) 35{ 36 return internal::aligned_new<T>(size); 37} 38template<typename T> inline void ei_aligned_delete(T *ptr, size_t size) 39{ 40 return internal::aligned_delete(ptr, size); 41} 42 43} // end namespace Eigen 44 45#endif // EIGEN2_MACROS_H 46