Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:03:43

0001 //----------------------------------*-C++-*----------------------------------//
0002 // See https://llvm.org/LICENSE.txt for license information.
0003 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0004 //---------------------------------------------------------------------------//
0005 /*!
0006  * \file ArrayUtilsImpl.hh
0007  */
0008 //---------------------------------------------------------------------------//
0009 #pragma once
0010 
0011 #include "corecel/Macros.hh"
0012 
0013 namespace celeritas
0014 {
0015 namespace detail
0016 {
0017 //---------------------------------------------------------------------------//
0018 //! Traits for operations on real vectors
0019 template<class T>
0020 struct RealVecTraits;
0021 
0022 template<>
0023 struct RealVecTraits<float>
0024 {
0025     //! Threshold for rotation
0026     static CELER_CONSTEXPR_FUNCTION float min_accurate_sintheta()
0027     {
0028         return 0.07f;
0029     }
0030 };
0031 
0032 template<>
0033 struct RealVecTraits<double>
0034 {
0035     //! Threshold for rotation
0036     static CELER_CONSTEXPR_FUNCTION double min_accurate_sintheta()
0037     {
0038         return 0.005;
0039     }
0040 };
0041 
0042 //---------------------------------------------------------------------------//
0043 }  // namespace detail
0044 }  // namespace celeritas