Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer, es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Ein Anmelden über dieses erzeugt ein neues Konto. Das alte Konto ist über den Reiter "Standard" erreichbar. Die Administratoren

Dear Gitlab user, it is now possible to log in to our service using the ZIH login/LDAP. Logging in via this will create a new account. The old account can be accessed via the "Standard" tab. The administrators

Commit 2f05c417 authored by Praetorius, Simon's avatar Praetorius, Simon
Browse files

removed const_cast in operations/product and norm

parent 371a9508
......@@ -32,6 +32,8 @@
// alignement specification
// ------------------------
#define ALIGNED(type,name,N) type name[N] __attribute__ ((aligned(CACHE_LINE)))
#define ASSUME_ALIGNED(var) __builtin_assume_aligned(var, CACHE_LINE)
typedef double aligned_double __attribute__ ((aligned(CACHE_LINE)));
typedef float aligned_float __attribute__ ((aligned(CACHE_LINE)));
typedef int aligned_int __attribute__ ((aligned(CACHE_LINE)));
......
......@@ -35,12 +35,18 @@
// ------------------------
#ifndef ALIGNED
#define ALIGNED(type,name,N) type name[N]
#define ASSUME_ALIGNED(var) var
typedef double aligned_double;
typedef float aligned_float;
typedef int aligned_int;
typedef size_t aligned_size_t;
#define ALIGNED_ALLOC(type,size,alignment) new type[size]
#define ALIGNED_FREE(addr) delete [] addr
#endif
#ifndef ALIGNED_ALLOC
// define aligned_malloc and aligned_free somewhere else, before using the macros
#define ALIGNED_ALLOC(type,size,alignment) (type*)aligned_malloc(size*sizeof(type), alignment)
#define ALIGNED_FREE(ptr) aligned_free(ptr)
#endif
// some compiler attributes
......
......@@ -32,16 +32,13 @@
// alignement specification
// ------------------------
#define ALIGNED(type,name,N) type name[N] __attribute__ ((aligned(CACHE_LINE)))
#define ASSUME_ALIGNED(var) __builtin_assume_aligned(var, CACHE_LINE)
typedef double aligned_double __attribute__ ((aligned(CACHE_LINE)));
typedef float aligned_float __attribute__ ((aligned(CACHE_LINE)));
typedef int aligned_int __attribute__ ((aligned(CACHE_LINE)));
typedef size_t aligned_size_t __attribute__ ((aligned(CACHE_LINE)));
#include <stdlib.h>
#define ALIGNED_ALLOC(type,size,alignment) (type*)memalign(alignment, size*sizeof(type))
inline void aligned_free( void* p ) { void* p1 = ((void**)p)[-1]; free( p1 ); }
#define ALIGNED_FREE(ptr) aligned_free(ptr)
// some compiler attributes
// ------------------------
#define NOINLINE __attribute__ ((noinline))
......
......@@ -33,6 +33,8 @@
// alignement specification
// ------------------------
#define ALIGNED(type,name,N) __declspec(align(CACHE_LINE)) type name[N]
#define ASSUME_ALIGNED(var) var; __assume_aligned(var, CACHE_LINE)
typedef __declspec(align(CACHE_LINE)) double aligned_double;
typedef __declspec(align(CACHE_LINE)) float aligned_float;
typedef __declspec(align(CACHE_LINE)) int aligned_int;
......
......@@ -59,7 +59,7 @@ namespace AMDiS
using namespace mtl::vector;
typedef parameters<mtl::col_major, non_fixed::dimension, false, size_type> param;
mtl::dense_vector<value_type, param> tmp(AMDiS::size(v), const_cast<value_type*>(v.begin()));
mtl::dense_vector<const value_type, param> tmp(AMDiS::size(v), value_typev.begin());
return mtl::two_norm(tmp);
}
......@@ -110,7 +110,7 @@ namespace AMDiS
using namespace mtl::vector;
typedef parameters<mtl::col_major, non_fixed::dimension, false, size_type> param;
mtl::dense_vector<value_type, param> tmp(AMDiS::size(v), const_cast<value_type*>(v.begin()));
mtl::dense_vector<const value_type, param> tmp(AMDiS::size(v), v.begin());
return mtl::vector::one_norm(tmp);
}
......
......@@ -64,8 +64,8 @@ namespace AMDiS
using namespace mtl::vector;
typedef parameters<mtl::col_major, non_fixed::dimension, false, size_type1> param1;
typedef parameters<mtl::col_major, non_fixed::dimension, false, size_type2> param2;
mtl::dense_vector<value_type1, param1> tmp1(AMDiS::size(v1), const_cast<value_type1*>(v1.begin()));
mtl::dense_vector<value_type2, param2> tmp2(AMDiS::size(v2), const_cast<value_type2*>(v2.begin()));
mtl::dense_vector<const value_type1, param1> tmp1(AMDiS::size(v1), v1.begin());
mtl::dense_vector<const value_type2, param2> tmp2(AMDiS::size(v2), v2.begin());
return mtl::dot(tmp1, tmp2);
}
......
......@@ -44,13 +44,16 @@ namespace AMDiS
// introduce some shortcuts for boost::mpl
// ---------------------------------------
using boost::mpl::bool_;
using boost::mpl::true_;
using boost::mpl::false_;
using boost::mpl::and_;
using boost::mpl::or_;
using boost::enable_if;
using boost::enable_if_c;
using boost::disable_if;
using boost::disable_if_c;
namespace traits
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment