Swarm-NG
1.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
gravitation_common.hpp
Go to the documentation of this file.
1
/*************************************************************************
2
* Copyright (C) 2010 by Saleh Dindar and the Swarm-NG Development Team *
3
* *
4
* This program is free software; you can redistribute it and/or modify *
5
* it under the terms of the GNU General Public License as published by *
6
* the Free Software Foundation; either version 3 of the License. *
7
* *
8
* This program is distributed in the hope that it will be useful, *
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
11
* GNU General Public License for more details. *
12
* *
13
* You should have received a copy of the GNU General Public License *
14
* along with this program; if not, write to the *
15
* Free Software Foundation, Inc., *
16
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
17
************************************************************************/
18
24
#pragma once
25
26
// For using CoalescedStructArray in the gravitation implementations
27
#include "../types/coalescedstructarray.hpp"
28
29
#include "
bppt.hpp
"
30
31
namespace
swarm {
namespace
gpu {
namespace
bppt {
32
43
template
<
int
W>
44
struct
GravitationAccScalars
{
45
static
const
int
CHUNK_SIZE = W;
46
typedef
double
scalar_t;
47
48
double
_acc[CHUNK_SIZE];
49
50
// Accessors
51
GENERIC
double
& acc() {
return
_acc[0]; }
52
};
53
54
65
template
<
int
W>
66
struct
GravitationAccJerkScalars
{
67
static
const
int
CHUNK_SIZE = W;
68
typedef
double
scalar_t;
69
70
double
_acc[CHUNK_SIZE];
71
double
_jerk[CHUNK_SIZE];
72
73
// Accessors
74
GENERIC
double
& acc() {
return
_acc[0]; }
75
GENERIC
double
& jerk() {
return
_jerk[0]; }
76
};
77
78
82
GENERIC
double
inner_product
(
const
double
a[3],
const
double
b[3]){
83
return
a[0]*b[0]+a[1]*b[1]+a[2]*b[2];
84
}
85
86
#include "pair_calculation.hpp"
87
88
89
} } }
// end of namespace bppt :: gpu :: swarm
90
swarm
src
swarm
gpu
gravitation_common.hpp
Generated on Sun Jul 21 2013 11:11:54 for Swarm-NG by
1.8.4