EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HelixHough_kappaRange_sse.cpp File Reference
#include "vector_math_inline.h"
#include "HelixHough.h"
#include <cmath>
#include <iostream>
+ Include dependency graph for HelixHough_kappaRange_sse.cpp:

Go to the source code of this file.

Functions

static const unsigned int
allones[4] 
__attribute__ ((aligned(16)))
 
static void __attribute__ ((always_inline)) _vec_select_ux_uy(__m128 v_phi
 
 _vec_sin_cos_ps (v_phi, sinval, cosval)
 
 _vec_select_ux_uy (v_phi, ux, uy, tanphi, phisel)
 

Variables

static const __m128 one_o_2 = {0.5,0.5,0.5,0.5}
 
static void __m128 & ux = _mm_and_ps(phisel, tmp3)
 
static void __m128 __m128 & uy = _mm_and_ps(phisel, tmp4)
 
static void __m128 __m128 __m128 & tanphi = _mm_div_ps(num, denom)
 
static void __m128 __m128
__m128 __m128 & 
phisel
 
__m128 phi_sign = _mm_and_ps((__m128)vec_sgn, v_phi)
 
__m128 pos_phi = _mm_xor_ps(phi_sign, v_phi)
 
__m128 v_phi_m_pi = _mm_sub_ps(v_phi, pi)
 
__m128 pos_phi_m_pi = _mm_xor_ps(phi_sign, v_phi_m_pi)
 
__m128 v_twopi_m_phi = _mm_sub_ps(twopi, v_phi)
 
__m128 pos_twopi_m_phi = _mm_xor_ps(phi_sign, v_twopi_m_phi)
 
__m128 tmp2 = _mm_cmplt_ps(pos_phi_m_pi, pi_over_four)
 
__m128 sinval = {0.,0.,0.,0.}
 
__m128 cosval = {0.,0.,0.,0.}
 
__m128 num = _mm_and_ps(phisel, sinval)
 
__m128 denom = _mm_and_ps(phisel, cosval)
 
__m128 v_phi_p_pi02 = _mm_add_ps(v_phi, pi_over_two)
 
__m128 phi_compare = _mm_and_ps(phisel, v_phi_p_pi02)
 
__m128 tmp3 = _mm_mul_ps(tanphi, tanphi)
 
__m128 tmp4 = _mm_cmplt_ps(phi_compare, twopi)
 
static void __m128 y
 
static void __m128 __m128 v_phi
 
static void __m128 __m128 __m128 v_mind
 
static void __m128 __m128
__m128 __m128 
v_maxd
 
static void __m128 __m128
__m128 __m128 __m128 & 
v_mink = _mm_and_ps(tmp1, invr2)
 
static void __m128 __m128
__m128 __m128 __m128 __m128 & 
v_maxk = _mm_and_ps(tmp1, invr1)
 
static void __m128 __m128
__m128 __m128 __m128 __m128
__m128 & 
reflection_min = _mm_or_ps(reflection_min, tmp1)
 
static void __m128 __m128
__m128 __m128 __m128 __m128
__m128 __m128 & 
reflection_max = _mm_or_ps(reflection_max, tmp1)
 
static void __m128 __m128
__m128 __m128 __m128 __m128
__m128 __m128 __m128 & 
incorrect_quadrant = _mm_or_ps(incorrect_quadrant, tmp3)
 
static void __m128 __m128
__m128 __m128 __m128 __m128
__m128 __m128 __m128 __m128 & 
correct_quadrant
 
__m128 dy = {0.,0.,0.,0.}
 
__m128 t = {0.,0.,0.,0.}
 
__m128 tP = {0.,0.,0.,0.}
 
__m128 mx = {0.,0.,0.,0.}
 
__m128 my = {0.,0.,0.,0.}
 
__m128 Ix = {0.,0.,0.,0.}
 
__m128 Iy = {0.,0.,0.,0.}
 
__m128 r1 = {0.,0.,0.,0.}
 
__m128 r2 = {0.,0.,0.,0.}
 
__m128i vec_ones = _mm_load_si128((__m128i*)allones)
 
__m128i vec_sgn = _mm_load_si128((__m128i*)sign_int)
 
__m128 tmp1 = _mm_mul_ps(uy, y)
 
 dx = _mm_mul_ps(ux, v_mind)
 
__m128 Ix_sign = _mm_and_ps((__m128)vec_sgn, Ix)
 
__m128 ux_sign = _mm_and_ps((__m128)vec_sgn, ux)
 
__m128 Iy_sign = _mm_and_ps((__m128)vec_sgn, Iy)
 
__m128 uy_sign = _mm_and_ps((__m128)vec_sgn, uy)
 
__m128 invr1 = _mm_div_ps(one, r1)
 
__m128 invr2 = _mm_div_ps(one, r2)
 

Function Documentation

static const unsigned int allones [4] __attribute__ ( (aligned(16))  )
static
static void __attribute__ ( (always_inline)  )
inlinestatic
_vec_select_ux_uy ( v_phi  ,
ux  ,
uy  ,
tanphi  ,
phisel   
)
_vec_sin_cos_ps ( v_phi  ,
sinval  ,
cosval   
)

Variable Documentation

correct_quadrant
Initial value:
{
__m128 dx = {0.,0.,0.,0.}

Definition at line 72 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 72 of file HelixHough_kappaRange_sse.cpp

__m128 cosval = {0.,0.,0.,0.}

Definition at line 38 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 38 of file HelixHough_kappaRange_sse.cpp

dx = _mm_mul_ps(ux, v_mind)

Definition at line 96 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 96 of file HelixHough_kappaRange_sse.cpp

dy = {0.,0.,0.,0.}

Definition at line 74 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 74 of file HelixHough_kappaRange_sse.cpp

incorrect_quadrant = _mm_or_ps(incorrect_quadrant, tmp3)

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

__m128 invr1 = _mm_div_ps(one, r1)

Definition at line 215 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 215 of file HelixHough_kappaRange_sse.cpp

__m128 invr2 = _mm_div_ps(one, r2)

Definition at line 216 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 216 of file HelixHough_kappaRange_sse.cpp

Ix = {0.,0.,0.,0.}

Definition at line 83 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 83 of file HelixHough_kappaRange_sse.cpp

Ix_sign = _mm_and_ps((__m128)vec_sgn, Ix)

Definition at line 134 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 134 of file HelixHough_kappaRange_sse.cpp

Iy = {0.,0.,0.,0.}

Definition at line 84 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 84 of file HelixHough_kappaRange_sse.cpp

Iy_sign = _mm_and_ps((__m128)vec_sgn, Iy)

Definition at line 140 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 140 of file HelixHough_kappaRange_sse.cpp

mx = {0.,0.,0.,0.}

Definition at line 81 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 81 of file HelixHough_kappaRange_sse.cpp

Referenced by PHG4Utils::circle_rectangle_intersection().

my = {0.,0.,0.,0.}

Definition at line 82 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 82 of file HelixHough_kappaRange_sse.cpp

Referenced by PHG4Utils::circle_rectangle_intersection().

phi_compare = _mm_and_ps(phisel, v_phi_p_pi02)

Definition at line 49 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 49 of file HelixHough_kappaRange_sse.cpp

phi_sign = _mm_and_ps((__m128)vec_sgn, v_phi)

Definition at line 18 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 18 of file HelixHough_kappaRange_sse.cpp

__m128 phisel
Initial value:
{
__m128i vec_sgn = _mm_load_si128((__m128i*)sign_int)

Definition at line 15 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 15 of file HelixHough_kappaRange_sse.cpp

__m128 pos_phi = _mm_xor_ps(phi_sign, v_phi)

Definition at line 19 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 19 of file HelixHough_kappaRange_sse.cpp

__m128 pos_phi_m_pi = _mm_xor_ps(phi_sign, v_phi_m_pi)

Definition at line 24 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 24 of file HelixHough_kappaRange_sse.cpp

__m128 pos_twopi_m_phi = _mm_xor_ps(phi_sign, v_twopi_m_phi)

Definition at line 29 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 29 of file HelixHough_kappaRange_sse.cpp

reflection_max = _mm_or_ps(reflection_max, tmp1)

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

reflection_min = _mm_or_ps(reflection_min, tmp1)

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

__m128 sinval = {0.,0.,0.,0.}

Definition at line 37 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 37 of file HelixHough_kappaRange_sse.cpp

t = {0.,0.,0.,0.}

Definition at line 79 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 79 of file HelixHough_kappaRange_sse.cpp

Referenced by __attribute__(), TrackEvaluation::add_truth_information(), FluxMonitorGrid::AddEntry(), alphas(), tetgenmesh::apex(), avscatcen(), Acts::Test::BOOST_AUTO_TEST_CASE(), bsrlu(), FairGeoAssembly::calcVoluPosition(), FairGeoTorus::calcVoluPosition(), FairGeoTube::calcVoluPosition(), FairGeoTubs::calcVoluPosition(), FairGeoTrd1::calcVoluPosition(), FairGeoTrap::calcVoluPosition(), FairGeoCone::calcVoluPosition(), FairGeoCons::calcVoluPosition(), FairGeoEltu::calcVoluPosition(), checkExtrapolateToCylinder(), tetgenmesh::checkseg4encroach(), Acts::computeEnergyLossLandau(), FairGeoInterface::connectOutput(), PHG4Sector::PHG4SectorConstructor::Construct_Sectors(), BEmcRecCEMC::CorrectPosition(), BEmcRecEEMC::CorrectPosition(), BEmcRecFEMC::CorrectPosition(), Acts::Seedfinder< external_spacepoint_t, platform_t >::createSeedsForGroup(), Acts::Sycl::createSeedsForGroupSycl(), FairGeoRotation::createTRotMatrix(), Acts::TGeoSurfaceConverter::cylinderComponents(), oncsSub_iduppetdata::decode(), oncsSub_iduppetdata_v104::decode(), Packet_idcdevdescr::decode(), tetgenmesh::decode(), deriv(), Acts::deriveEnergyLossLandauQOverP(), tetgenmesh::dest(), nlohmann::basic_json::json_value::destroy(), Acts::TGeoSurfaceConverter::discComponents(), GFDetPlane::distance(), doCompression(), dokinematics(), Packet_idcdevdescr::dump(), photonNucleusCrossSection::e_getcsgA(), EicCadWizardCylinder::EicCadWizardCylinder(), EicCadWizardPlane::EicCadWizardPlane(), emptyTrackTest(), tetgenmesh::esymself(), PndEventCounterTask::Exec(), ElectronPIDModule::execute(), KaonPIDModule::execute(), MuonPIDModule::execute(), RawClusterBuilderTopo::export_clusters(), RawClusterBuilderTopo::export_single_cluster(), ffdeu(), ffhe3(), ffpro(), ffquas(), kdfinder::find_tracks(), HelixHough::findHelices(), tetgenmesh::flipnm_post(), nucleus::formFactor(), fullMaterial(), g(), PHTimer::get_clock_counts(), FairRootManager::GetBranchId(), photonNucleusCrossSection::getcsgA(), getinsudakov(), getnatmdmin(), getpnorad1(), getproba(), getqvec(), PndGeoHandling::GetRunId(), Fun4AllUtils::GetRunSegment(), getscatterer(), getsscat(), tetgenmesh::getsteinerptonsegment(), getsudakov(), gett(), A_Event::getTime(), gphoton(), kdfinder::CircleFit< T >::GradientHessian(), PHG4CylinderGeom_Spacalv3::ImportParameters(), CbmRichGeoTest::InitHistograms(), initializepidqabook(), dfe::FlatSet< T, Compare, Container >::insert_or_assign(), Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::intersect(), tetgenmesh::ishulltet(), CbmRichRingFitterEllipseTau::Jacobi(), layerMaterial(), PHTruthClustering::line_circle_intersection(), SvtxTruthEval::line_circle_intersection(), main(), make_forward_station_basic(), make_GEM_station(), make_LANL_FST_station(), kdfinder::make_triplets(), Fun4AllHistoManager::makeHisto(), tetgenmesh::markedge(), Mat_map(), md5_process(), MovePointPowerSeries(), MovePointPowerSeries2(), PHHepMCGenEvent::moveVertex(), Acts::Logging::TimedOutputDecorator::now(), oamlBuffer::oamlBuffer(), tetgenmesh::oppo(), tetgenmesh::org(), kdfinder::Helix< T >::pathLength(), Acts::TGeoSurfaceConverter::planeComponents(), PlotQA(), RKTrackRep::poca2Line(), genfit::RKTrackRep::pocaOnLine(), FairGeoBasicShape::posInMother(), PHG4Hitv1::print(), erhic::EventMC::Print(), RawClusterBuilderTopo::process_event(), ParticleFlowReco::process_event(), DetermineTowerBackground::process_event(), PHG4MicromegasHitReco::process_event(), PHGenFitTrkFitter::process_event(), TpcDirectLaserReconstruction::process_track(), Acts::Legacy::AtlasSeedfinder< SpacePoint >::production3Sp(), photonNucleusLuminosity::pttablegen(), PutInputFileName(), pygfxx(), pyhistfu(), pypdga(), pypdpo(), pypole(), pyprep(), pyr(), pyreco(), pystga(), pystpr(), pysubh(), pythag(), FairGeoOldAsciiIo::read(), FairGenericParAsciiFileIo::readData(), FairGeoSet::readTransform(), kdfinder::LinearFit< T >::RegularFit(), nlohmann::json_pointer< BasicJsonType >::replace_substring(), rlu(), ActsExamples::RootMaterialDecorator::RootMaterialDecorator(), scatprimfunc(), Acts::TGeoParser::select(), BbcVertexv1::set_t(), GlobalVertexv1::set_t(), PHG4ParticleGeneratorBase::set_t0(), PHG4CylinderGeomv1::set_thickness(), PHG4CylinderCellGeom::set_thickness(), RawTowerGeomContainer_Cylinderv1::set_thickness(), RawTowerZDCv1::set_time(), RawTowerv1::set_time(), PHHepMCGenHelper::set_vertex_distribution_function(), PHHepMCGenHelper::set_vertex_distribution_mean(), PHHepMCGenHelper::set_vertex_distribution_width(), tetgenmesh::setapex(), PHTimeStamp::setBinTics(), FairRootManager::SetBranchNameList(), FairGeoNode::setCenterPosition(), tetgenmesh::setdest(), erhic::EventPythia::SetHardT(), FairGeoNode::setLabTransform(), tetgenmesh::setoppo(), tetgenmesh::setorg(), FairParamObj::setParamType(), FairRun::SetTask(), FairMCEventHeader::SetTime(), CbmMCEvent::SetTime(), FairTimeStamp::SetTimeStamp(), FairTimeStamp::SetTimeStampError(), FairGeoTransform::setTransVector(), Smear::ParticleID::SetupProbabilityArray(), FairGeoNode::setVolumeType(), lorentzVector::SetXYZT(), kdfinder::CircleFit< T >::SigmaWithLargeCircleOption(), tetgenmesh::stpivot(), GFDetPlane::straightLineToPlane(), genfit::DetPlane::straightLineToPlane(), strf(), subcrs1(), subcrs2(), subcrs3(), subcrs4(), subcrs5(), subcrs6(), subcrs7(), supst(), nlohmann::detail::to_json_tuple_impl(), nlohmann::detail::lexer< BasicJsonType >::token_type_name(), FairUtilString::ToString(), FairGeanePro::Track3ToLine(), TreeToHepMC(), tetgenmesh::tsbond(), tetgenmesh::tssbond1(), tetgenmesh::unmarkedge(), ActsExamples::RootMaterialWriter::write(), FairDetParAsciiFileIo::writeComment(), FairDetParAsciiFileIo::writeHeader(), and simpleRandom::xMD5Update().

__m128 tanphi = _mm_div_ps(num, denom)

Definition at line 14 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 14 of file HelixHough_kappaRange_sse.cpp

Referenced by main().

tmp1 = _mm_mul_ps(uy, y)

Definition at line 94 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 94 of file HelixHough_kappaRange_sse.cpp

tmp2 = _mm_cmplt_ps(pos_phi_m_pi, pi_over_four)

Definition at line 32 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 32 of file HelixHough_kappaRange_sse.cpp

tmp3 = _mm_mul_ps(tanphi, tanphi)

Definition at line 52 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 52 of file HelixHough_kappaRange_sse.cpp

tmp4 = _mm_cmplt_ps(phi_compare, twopi)

Definition at line 57 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 57 of file HelixHough_kappaRange_sse.cpp

tP = {0.,0.,0.,0.}

Definition at line 80 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 80 of file HelixHough_kappaRange_sse.cpp

__m128 ux = _mm_and_ps(phisel, tmp3)

Definition at line 14 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 14 of file HelixHough_kappaRange_sse.cpp

ux_sign = _mm_and_ps((__m128)vec_sgn, ux)

Definition at line 136 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 136 of file HelixHough_kappaRange_sse.cpp

__m128 uy = _mm_and_ps(phisel, tmp4)

Definition at line 14 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 14 of file HelixHough_kappaRange_sse.cpp

uy_sign = _mm_and_ps((__m128)vec_sgn, uy)

Definition at line 141 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 141 of file HelixHough_kappaRange_sse.cpp

void __m128 __m128 __m128 __m128 v_maxd

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

v_maxk = _mm_and_ps(tmp1, invr1)

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

void __m128 __m128 __m128 v_mind

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

v_mink = _mm_and_ps(tmp1, invr2)

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

void __m128 __m128 v_phi

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp

Referenced by Fill().

__m128 v_phi_m_pi = _mm_sub_ps(v_phi, pi)

Definition at line 22 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 22 of file HelixHough_kappaRange_sse.cpp

__m128 v_phi_p_pi02 = _mm_add_ps(v_phi, pi_over_two)

Definition at line 48 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 48 of file HelixHough_kappaRange_sse.cpp

__m128 v_twopi_m_phi = _mm_sub_ps(twopi, v_phi)

Definition at line 27 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 27 of file HelixHough_kappaRange_sse.cpp

__m128i vec_ones = _mm_load_si128((__m128i*)allones)

Definition at line 88 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 88 of file HelixHough_kappaRange_sse.cpp

__m128i vec_sgn = _mm_load_si128((__m128i*)sign_int)

Definition at line 89 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 89 of file HelixHough_kappaRange_sse.cpp

void __m128 y

Definition at line 71 of file HelixHough_kappaRange_sse.cpp.

View newest version in sPHENIX GitHub at line 71 of file HelixHough_kappaRange_sse.cpp