NGSolve 5.3
templates.hpp
1#ifndef FILE_NGSTD_TEMPLATES
2#define FILE_NGSTD_TEMPLATES
3
4/*********************************************************************/
5/* File: templates.hpp */
6/* Author: Joachim Schoeberl */
7/* Date: 25. Mar. 2000 */
8/*********************************************************************/
9
10#include <iostream>
11#include <ngs_stdcpp_include.hpp>
12
13namespace ngstd
14{
15 using namespace std;
16
17 /*
18
19
21template <class T>
22INLINE T min2 (T a, T b)
23{
24 return (a < b) ? a : b;
25}
26
28template <class T>
29INLINE T max2 (T a, T b)
30{
31 return (a > b) ? a : b;
32}
33
35template <class T>
36INLINE T min3 (T a, T b, T c)
37{
38 return (a < b) ? (a < c) ? a : c
39 : (b < c) ? b : c;
40}
41
43template <class T>
44INLINE T max3 (T a, T b, T c)
45{
47 return (a > b) ? ((a > c) ? a : c)
48 : ((b > c) ? b : c);
49}
50 */
51
52
53/*
55template <class T>
56INLINE int sgn (T a)
57{
58 return (a > 0) ? 1 : ( ( a < 0) ? -1 : 0 );
59}
60*/
61
62 /*
64template <class T>
65INLINE T sqr (const T a)
66{
67 return a * a;
68}
69 */
70
71 /*
72 using ngcore::sqr;
73 using ngcore::pow3;
74 using ngcore::max2;
75 using ngcore::min2;
76 using ngcore::max3;
77 using ngcore::min3;
78 using ngcore::LoadBin;
79 using ngcore::SaveBin;
80 */
81
82 /*
83
85template <class T>
86INLINE T pow3 (const T a)
87{
88 return a * a * a;
89}
90
91
92template <class T>
93void SaveBin (ostream & ost, const T & val)
94{
95 const char * cp = reinterpret_cast<const char*> (&val);
96 for (unsigned j = 0; j < sizeof(T); j++)
97 ost.put(cp[j]);
98}
99
100
101template <class T>
102void LoadBin (istream & ist, T & val)
103{
104 char * cp = reinterpret_cast<char*> (&val);
105 for (unsigned j = 0; j < sizeof(T); j++)
106 ist.get(cp[j]);
107}
108 */
109
110
111
112}
113
114#endif
namespace for standard data types and algorithms.
Definition ngstd.hpp:42