Skip to content

Commit 7b9ffd3

Browse files
committed
update changelog and some docs
1 parent ddc028f commit 7b9ffd3

File tree

4 files changed

+101
-16
lines changed

4 files changed

+101
-16
lines changed

CHANGELOG.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,53 @@
11
## CHANGE LOG
22

3+
### Hydra 4.0.1
4+
5+
Hydra is now compatible with CUDA 12.2 or higher and compliant with C++17 and C++20.
6+
7+
In this release:
8+
9+
1) Dependencies updates:
10+
11+
* Thrust v2.2.0
12+
* CUB v2.2.0
13+
* Eigen 3.4.0
14+
* Boost.Math 1.83.0 (NEW)
15+
16+
2) Dependencies functions and classes are now available under corresponding subnamespaces. For example:
17+
`hydra::thrust`, `hydra::boost::math` and `hydra::Eigen`;
18+
3) New spline algorithms for interpolation up to four dimensions:
19+
20+
Free functions:
21+
22+
```cpp
23+
24+
hydra::spline
25+
hydra::spline2D
26+
hydra::spline4D
27+
hydra::spline3D
28+
```
29+
Including overloads for range-based contained and histograms with corresponding dimension. Header: `hydra/Spline.h`
30+
31+
32+
4) New method `Interpolate(...)` for dense and sparse histograms up to four dimensions.
33+
34+
5) New functors:
35+
36+
```cpp
37+
38+
hydra::SplineFunctor
39+
hydra::Spline2DFunctor
40+
hydra::Spline4DFunctor
41+
hydra::Spline3DFunctor
42+
```
43+
Defined in the headers: `hydra/functions/SplineFunctor.h` , `hydra/functions/Spline2DFunctor.h` `hydra/functions/Spline3DFunctor.h` `hydra/functions/Spline4DFunctor.h`.
44+
45+
6) New examples covering new functionality.
46+
47+
Bug fixes:
48+
49+
Many bug fixes across the tree.
50+
351
### Hydra 3.2.2
452

553
This release:

docs/containers.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,6 @@ stdout will look like:
144144
...
145145
((9, 18), (9.0, 18.0))
146146
147-
Same effect can be
148-
149147
150148
``hydra::multiarray``
151149
.................

examples/misc/spline4D_interpolation.inl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -86,29 +86,29 @@ int main(int argv, char** argc)
8686

8787
//parameters
8888
hydra::Parameter mean = hydra::Parameter::Create().Name("Mean").Value(0.0).Error(0.0001).Limits(-1.0, 1.0);
89-
hydra::Parameter sigma = hydra::Parameter::Create().Name("Sigma").Value(3.0).Error(0.0001).Limits(0.01, 1.5);
89+
hydra::Parameter sigma = hydra::Parameter::Create().Name("Sigma").Value(1.0).Error(0.0001).Limits(0.01, 1.5);
9090

9191

9292
//gaussian function evaluating on argument zero
9393
hydra::Gaussian<double> gaussian(mean, sigma);
9494

9595
//set the x dimension of the grid
96-
auto xaxis = hydra::range(-10.0, 10.0, 10);
96+
auto xaxis = hydra::range(-3.0, 3.0, 200);
9797
auto x_grid_size = xaxis.size();
9898
auto xiter = xaxis.begin();
9999

100100
//set the y dimension of the grid
101-
auto yaxis = hydra::range(-10.0, 10.0, 10);
101+
auto yaxis = hydra::range(-3.0, 3.0, 200);
102102
auto y_grid_size = yaxis.size();
103103
auto yiter = yaxis.begin();
104104

105105
//set the w dimension of the grid
106-
auto waxis = hydra::range(-10.0, 10.0, 10);
106+
auto waxis = hydra::range(-3.0, 3.0, 200);
107107
auto w_grid_size = waxis.size();
108108
auto witer = waxis.begin();
109109

110110
//set the z dimension of the grid
111-
auto zaxis = hydra::range(-10.0, 10.0, 10);
111+
auto zaxis = hydra::range(-3.0, 3.0, 200);
112112
auto z_grid_size = zaxis.size();
113113
auto ziter = zaxis.begin();
114114

@@ -128,7 +128,6 @@ int main(int argv, char** argc)
128128
auto w = witer[iw];
129129
auto z = ziter[iz];
130130

131-
//std::cout << " i,j,l, k -> " << ix <<", " <<iy <<", " << iw <<" ," << iz << std::endl;
132131
auto r =gaussian( x )*gaussian( y )*gaussian( w )*gaussian( z );
133132

134133
return r;
@@ -141,16 +140,17 @@ int main(int argv, char** argc)
141140
auto spline4D = hydra::make_spline4D<double, double, double, double>(xaxis, yaxis, waxis, zaxis, ordinate );
142141

143142
//get random values for x and y
144-
auto random_x = hydra::random_range( hydra::UniformShape<double>(-10.0, 10.0), 157531, 50) ;
145-
auto random_y = hydra::random_range( hydra::UniformShape<double>(-10.0, 10.0), 456258, 50) ;
146-
auto random_w = hydra::random_range( hydra::UniformShape<double>(-10.0, 10.0), 753159, 50) ;
147-
auto random_z = hydra::random_range( hydra::UniformShape<double>(-10.0, 10.0), 789512, 50) ;
143+
auto random_x = hydra::random_range( hydra::UniformShape<double>(-1.0, 1.0), 157531, 10) ;
144+
auto random_y = hydra::random_range( hydra::UniformShape<double>(-1.0, 1.0), 456258, 10) ;
145+
auto random_w = hydra::random_range( hydra::UniformShape<double>(-1.0, 1.0), 753159, 10) ;
146+
auto random_z = hydra::random_range( hydra::UniformShape<double>(-1.0, 1.0), 789512, 10) ;
148147

149148

150-
for( auto x:xaxis){//random_x ){
151-
for( auto y:yaxis){//random_y ){
152-
for( auto w:waxis){//random_w ){
153-
for( auto z:zaxis){//random_z ){
149+
150+
for( auto x:random_x ){
151+
for( auto y:random_y ){
152+
for( auto w:random_w ){
153+
for( auto z:random_z ){
154154
printf(" x %f y %f w %f z %f spline4D %f gaussian4D %f\n", x,y, w, z,
155155
spline4D(x,y, w, z), gaussian(x)*gaussian( y )*gaussian( w )*gaussian( z ));
156156
}

hydra/Spline.h

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,45 @@ inline typename std::enable_if<
171171
double >::type
172172
spline3D(IterableX&& abscissa_x, IterableY&& abscissa_y, IterableZ&& abscissa_z, IterableM measurements, TypeX x, TypeX y, TypeZ z );
173173

174+
template<typename IteratorX, typename IteratorY, typename IteratorW, typename IteratorZ, typename IteratorM,
175+
typename TypeX, typename TypeY, typename TypeW, typename TypeZ >
176+
__hydra_host__ __hydra_device__
177+
inline typename std::enable_if<
178+
std::is_convertible<typename hydra::thrust::iterator_traits<IteratorX>::value_type, double >::value &&
179+
std::is_convertible<typename hydra::thrust::iterator_traits<IteratorY>::value_type, double >::value &&
180+
std::is_convertible<typename hydra::thrust::iterator_traits<IteratorW>::value_type, double >::value &&
181+
std::is_convertible<typename hydra::thrust::iterator_traits<IteratorZ>::value_type, double >::value &&
182+
std::is_convertible<typename hydra::thrust::iterator_traits<IteratorM>::value_type, double >::value &&
183+
std::is_convertible<TypeX, double >::value &&
184+
std::is_convertible<TypeY, double >::value &&
185+
std::is_convertible<TypeW, double >::value &&
186+
std::is_convertible<TypeZ, double >::value, double>::type
187+
spline4D(IteratorX firstx, IteratorX lastx,
188+
IteratorY firsty, IteratorY lasty,
189+
IteratorW firstw, IteratorW lastw,
190+
IteratorZ firstz, IteratorZ lastz,
191+
IteratorM measurements, TypeX x, TypeY y, TypeW w, TypeZ z);
192+
193+
template<typename IterableX, typename IterableY,typename IterableW,typename IterableZ,typename IterableM, typename TypeX,typename TypeY, typename TypeW, typename TypeZ >
194+
__hydra_host__ __hydra_device__
195+
inline typename std::enable_if<
196+
hydra::detail::is_iterable<IterableX>::value &&
197+
hydra::detail::is_iterable<IterableY>::value &&
198+
hydra::detail::is_iterable<IterableW>::value &&
199+
hydra::detail::is_iterable<IterableZ>::value &&
200+
hydra::detail::is_iterable<IterableM>::value &&
201+
std::is_convertible<typename IterableX::value_type, double >::value &&
202+
std::is_convertible<typename IterableY::value_type, double >::value &&
203+
std::is_convertible<typename IterableW::value_type, double >::value &&
204+
std::is_convertible<typename IterableZ::value_type, double >::value &&
205+
std::is_convertible<typename IterableM::value_type, double >::value &&
206+
std::is_convertible<TypeX, double >::value &&
207+
std::is_convertible<TypeY, double >::value &&
208+
std::is_convertible<TypeW, double >::value &&
209+
std::is_convertible<TypeZ, double >::value ,
210+
double >::type
211+
spline3D(IterableX&& abscissa_x, IterableY&& abscissa_y, IterableW&& abscissa_w, IterableZ&& abscissa_z, IterableM measurements, TypeX x, TypeX y, TypeW w, TypeZ z );
212+
174213
} // namespace hydra
175214

176215
#include <hydra/detail/Spline.inl>

0 commit comments

Comments
 (0)