20#ifndef _CACHE_RESULTS_H
21#define _CACHE_RESULTS_H
33#include <lal/LatticeTiling.h>
34#include <lal/SuperskyMetrics.h>
41 const LatticeTiling *semi_tiling,
42 const SuperskyTransformData *semi_rssky_transf,
45 const UINT4 nfreq_partitions
48 WeaveCacheQueries *queries
51 WeaveCacheQueries *queries,
52 const UINT8 semi_index,
53 const gsl_vector *semi_rssky,
55 const INT4 semi_right,
56 const UINT4 freq_partition_index
59 const WeaveCache *
cache,
60 WeaveCacheQueries *queries,
61 const UINT4 query_index
64 WeaveCacheQueries *queries,
69 const WeaveCacheQueries *queries,
75 const LatticeTiling *coh_tiling,
77 const SuperskyTransformData *coh_rssky_transf,
78 const SuperskyTransformData *semi_rssky_transf,
79 WeaveCohInput *coh_input,
87 REAL4 *cache_mean_max_size,
89 WeaveCache *
const *
cache
94 WeaveCache *
const *
cache
104 const WeaveCacheQueries *queries,
105 const UINT4 query_index,
106 const WeaveCohResults **coh_res,
109 WeaveSearchTiming *tim
WeaveCache * XLALWeaveCacheCreate(const LatticeTiling *coh_tiling, const BOOLEAN interpolation, const SuperskyTransformData *coh_rssky_transf, const SuperskyTransformData *semi_rssky_transf, WeaveCohInput *coh_input, const UINT4 max_size, const BOOLEAN all_gc)
Create a cache.
void XLALWeaveCacheQueriesDestroy(WeaveCacheQueries *queries)
Destroy storage for a series of cache queries.
int XLALWeaveCacheQuery(const WeaveCache *cache, WeaveCacheQueries *queries, const UINT4 query_index)
Query a cache for the results nearest to a given coherent point.
int XLALWeaveCacheQueriesFinal(WeaveCacheQueries *queries, PulsarDopplerParams *semi_phys, UINT4 *semi_nfreqs)
Finalise a series of cache queries.
int XLALWeaveCacheQueriesInit(WeaveCacheQueries *queries, const UINT8 semi_index, const gsl_vector *semi_rssky, const INT4 semi_left, const INT4 semi_right, const UINT4 freq_partition_index)
Initialise a series of cache queries.
int XLALWeaveCacheExpire(WeaveCache *cache)
Expire all items in the cache.
int XLALWeaveGetCacheMeanMaxSize(REAL4 *cache_mean_max_size, const size_t ncache, WeaveCache *const *cache)
Determine the mean maximum size obtained by caches.
void XLALWeaveCacheDestroy(WeaveCache *cache)
Destroy a cache.
int XLALWeaveCacheRetrieve(WeaveCache *cache, const WeaveCacheQueries *queries, const UINT4 query_index, const WeaveCohResults **coh_res, UINT8 *coh_index, UINT4 *coh_offset, WeaveSearchTiming *tim)
Retrieve coherent results for a given query, or compute new coherent results if not found.
WeaveCacheQueries * XLALWeaveCacheQueriesCreate(const LatticeTiling *semi_tiling, const SuperskyTransformData *semi_rssky_transf, const double dfreq, const UINT4 nqueries, const UINT4 nfreq_partitions)
Create storage for a series of cache queries.
int XLALWeaveCacheQueriesGetCounts(const WeaveCacheQueries *queries, UINT8 *coh_nres, UINT8 *coh_ntmpl, UINT8 *semi_ntmpl)
Get number of computed coherent results, and number of coherent and semicoherent templates.
int XLALWeaveCacheClear(WeaveCache *cache)
Clear all items in the cache from memory.
int XLALWeaveCacheWriteInfo(FITSFile *file, const size_t ncache, WeaveCache *const *cache)
Write various information from caches to a FITS file.
Module which computes coherent and semicoherent results.
Module which collects search timings and builds a timing model.
struct tagFITSFile FITSFile
Representation of a FITS file.
Type containing the 'Doppler-parameters' affecting the time-evolution of the phase.