1. 09 Apr, 2015 16 commits
    • Karl Wette's avatar
      ComputeFstatBenchmark: add developer option --reuseInput · 6762f25a
      Karl Wette authored
      - Only useful for checking workspace management
      - Refs #2001
      Original: ba1d8fee6139dd855a45759cbeedce8470629ece
    • Karl Wette's avatar
      ComputeFstat: implement reference counting for common workspace · aa849106
      Karl Wette authored
      - Gives user flexibility to free FstatInput in any order without
        problems; workspace is freed only once it's no longer needed
      - First FstatInput allocates memory for workspace and reference
        counter; subsequent FstatInput store pointers to workspace and
        reference counter, which is incremented
      - When destroyed, each FstatInput decrements reference counter;
        once it reaches 0, workspace and reference count memory are freed
      - Refs #2001
      Original: 503044dd82f5975b0cd5c6449f02d4658b561709
    • Karl Wette's avatar
      ComputeFstat: rename '..._dtor' variables to '..._destroy_func' · 2bf18563
      Karl Wette authored
      - More descriptive names
      - Refs #2001
      Original: 4262e8cafe44a0979d4289178f0e42ea3c40f828
    • Karl Wette's avatar
      ComputeFstat: fully implement runtime selection of Demod hotloops · 5f90c91a
      Karl Wette authored
        configure.ac to check for SSE and Altivec support
      - Each Demod hotloop compiled separately as ComputeFstat_DemodHL_<name>.c,
        uses ComputeFstat_Demod_ComputeFaFb.c and ComputeFstat_DemodHL_<name>.i
      - XLALSetupFstatDemod() saves a function pointed to selected Demod hotloop
        based on which are available at compile time. XLALFstatMethodIsAvailable()
        already handles which methods are available at runtime
      - XLALComputeFstatDemod() calls function pointer to execute Demod hotloop
      - Refs #2001
      Original: 2eb69e677277e79b7780c059883e48539ae852db
    • Karl Wette's avatar
      ComputeFstat: modify Fstat method handling for runtime selection · c4f6479c
      Karl Wette authored
      - FMETHOD_{DEMOD|RESAMP}_BEST are now ordinary enum constants,
        which XLALCreateFstatInput() will replace with best available
        runtime method when called
      - XLALFstatMethodIsAvailable() decides which methods are available
        at runtime, rather than querying a compile-time list
      - Modify XLALFstatMethodHelpString() to still print same help string
      - Remove XLALFstatMethodClassIs...() macros, no longer needed apart
        from hack in ComputeFstatistic_v2.c
      - Refs #2001
      Original: 5fee3846a5e93073cdc23d2747d0e144a32621a6
    • Karl Wette's avatar
      ComputeFstat: compile ComputeFstat_{Demod,Resamp}.c separately · 1f2731ba
      Karl Wette authored
      - Share definitions where required via ComputeFstat_internal.h
      - Refs #2001
      Original: 818975ac0fb1de6549f636c44feee34f96375d5f
    • Karl Wette's avatar
      ComputeFstat: better encapsulate F-stat methods using function pointers · af43a8a8
      Karl Wette authored
      - Switch at beginning of XLALCreateFstatInput() selects setup function
        pointer and number of extra SFT bins for a given method; this should
        be (pretty much) the only point where method-specific stuff happens
      - Runtime checks on Dterms moved here from Demod ComputeFaFb() functions
      - Setup function initialises 'input.method_funcs' with pointer to
        compute function and various destructor functions, used elsewhere
      - Setup function allocates method data, returned in input.method_data;
        XLALCreateFstatInput() does't need to know size of method data struct
      - Simplify names of some functions and structs
      - Refs #2001
      Original: 5f16c8396b0dc495bacb3ae622ff2083d4040d77
    • Karl Wette's avatar
      ComputeFstat_Resamp: cleaner encapsulation of timing info output · 5db670e8
      Karl Wette authored
      - XLALGetResampTimingInfo() replaced by global variables Resamp_tauF1Buf
        and Resamp_tauF1NoBuf, updated at end of ComputeFstat_Resamp()
      - XLALAppendResampInfo2File() now fully internal, called at end of
        ComputeFstat_Resamp() with file pointer from FstatOptionalArgs
      - Refs #2001
      Original: e430dd3e8ae740eebc53cad5ab5a87372f1ed959
    • Karl Wette's avatar
      ComputeFstat: better encapsulate shared workspace handling · 65679b16
      Karl Wette authored
      - Move workspace into common Fstat data
      - Move workspace ownership logic into XLALCreateFstatInput()
      - Methods that use a workspace must supply a destructor function
      - User now just needs to pass a previous FstatInput to optionalArgs;
        the FstatInput that allocated the workspace also destroys it
      - Refs #2001
      Original: 4168a79a1fcff721685f948f3b41a9a80fda801e
    • Karl Wette's avatar
      ComputeFstat: change XLALGetFstatMethodName(FstatMethodType) to... · 16fa6a84
      Karl Wette authored
      ComputeFstat: change XLALGetFstatMethodName(FstatMethodType) to XLALGetFstatInputMethodName(const FstatInput*)
      - Since F-statistic method might now be selected at runtime, cannot know for
        sure which method is in use until XLALCreateFstatInput() has been called
      - Best therefore to query the FstatInput* for which method is being used
      - Refs #2001
      Original: f405ec2758fc7f932bd4af62cbe3c03db02b8a30
    • Karl Wette's avatar
      ComputeFstat: make FstatInput::common a struct member instead of a pointer · 76f4e1e5
      Karl Wette authored
      - No need for it to be dynamically allocated
      - Refs #2001
      Original: d39f964deb122a1a20f4a08a9db875a10185d7c8
    • Karl Wette's avatar
      ComputeFstat.c: temporarily disable SSE and Altivec Demod hotloops · 21f69438
      Karl Wette authored
      - Not currently supported by build system since refs #1950 was pushed
      - Refs #2001
      Original: 896ca83483bfb533b3291e8caa2929341ef1dadd
    • Karl Wette's avatar
      ComputeFstat*.[chi]: cleanup and simplify copyright notices · 803a53d7
      Karl Wette authored
      - Use date--ranges, coalesce multiple entries for an author into one line
      - Add copyright notice for ComputeFstat_Demod_ComputeFaFb.c, copied from
      Original: 9f6ecc2429b6dc96a8e88364597a06dd41903b42
    • Karl Wette's avatar
      ComputeFstat_DemodHL_Altivec.i: minor bracket cleanup · e3963513
      Karl Wette authored
      Original: f11583b838a06838ba2f063ed5dd8483c7330e2a
    • Karl Wette's avatar
      ComputeFstat.[ch]: minor documentation and comment cleanups · 0490f5de
      Karl Wette authored
      Original: 818f4c0506075b59ea29b0149ca7b3a90f63d085
    • Karl Wette's avatar
      ComputeFstat.c: whitespace cleanup · 121625e9
      Karl Wette authored
      Original: af0ce524c0c43f42dd83c546e495a45f60aea93a
  2. 06 Apr, 2015 1 commit
  3. 04 Apr, 2015 1 commit
  4. 02 Apr, 2015 3 commits
    • Karl Wette's avatar
      Implement runtime SIMD detection and dispatch for VectorMath functions · d896f77d
      Karl Wette authored
      - Autoconf macro LALSUITE_WITH_SIMD now just checks for compiler support,
        no runtime checks (so removed unneeded AX_... macros). These checks are
        always performed so that specialised SIMD code can always be compiled.
      - Remove ./configure option --with-simd, no longer needed.
      - Public LALSIMD.h headers exposes SIMD runtime detection and some macros.
        Guru users can set LAL_SIMD_ISET to down-select SIMD instruction set.
      - Internal simd_dispatch.h contains useful macros for runtime dispatching.
      - lal-simd-detect is a utility which prints SIMD compiler/machine support.
      - VectorMath uses runtime dispatch to select SSE|SSE2|AVX|AVX2 versions of
        XLALVectorMath...() functions, using an internal function pointer and
        dispatch function. Internal details of implementation are hidden behind
        API, and everything is macro-generated for ease of adding new functions.
      - VectorMathTests.h test script runs VectorMathTest with different SIMD
        instructions, try to test at least SSE and AVX if supported.
      - Remove LAL_WITH_SIMD from LALPulsar, no longer needed.
      - Refs #1950
      Original: 62849868479af666596defcf6ee255bd1bd1de76
    • Karl Wette's avatar
      lalsuite_build.m4: improvements to LALSUITE_CHECK_{COMPILE,LINK}_FLAGS macros · 978595e1
      Karl Wette authored
      - Do not try to determine error flags (unreliable; e.g. icc, gcc on squeeze).
        Instead set ac_<lang>_werror_flag=yes before checks, which enforces that
        compiler/linker does not print anything to stderr when executed.
      - Reimplement AX_CHECK_{COMPILE,LINK}_FLAG macros within LALSuite macros,
        making any future fixes/hacking easier (e.g. AX_CHECK_LINK_FLAG does not
        cache current language in cache variable).
      - Use user-supplied {C,CXX,LD,...}FLAGS in compile/link flag checks, in case
        user-supplied flags modify which flags are supported (e.g. architecture flags).
      - Use an empty AC_LANG_SOURCE([]) when checking compile flags, since source may
        itself trigger errors (e.g. -Wstrict-prototypes).
      Original: 886e29f8f16fcd2420b758422b4efef55811f6dc
    • Karl Wette's avatar
      ComputeFstat_Resamp/LFTandTSutils: replace 'inv_fact' with 'LAL_FACT_INV' from lal/Factorial.h · 2f9b4ccf
      Karl Wette authored
      - Refs #1954
      Original: f96e6e3076f9b17809bd8c7317bf57a128ed5b2d
  5. 01 Apr, 2015 12 commits
  6. 30 Mar, 2015 1 commit
    • Kipp Cannon's avatar
      lal: merge LALErrno.h into LALError.h · 90e3674b
      Kipp Cannon authored
      - LALErrno.h was introduced to clean up the hard-coded integer constants
        and inline error message strings that once appeared throughout lal in
        association with the "LALStatus"-based error reporting mechanism.  that
        error reporting mechanism is now obsolete and has been mostly removed,
        but some code remains that continues to use it.  this patch coalesces the
        definitions of the integer constants and error message strings into the
        header that defines the LALStatus error reporting macros, making it
        easier to remove all of this stuff later and making it clear to the
        authors of new code that these constants are not to be used with the new
        error reporting mechanism.
      - while at it, the numeric constants are replaced with their new XLAL errno
        equivalents in the hope that this minimizes the cost of converting the
        remaining legacy code to XLAL-based APIs in the future (prevent somebody
        from writing new code that relies on the old integer values).  make check
        in all trees passes with the new error code values.
      - see https://bugs.ligo.org/redmine/issues/2009
      Original: 98d7425f10d12e7ce6b25e9c97ac3a37eb75dfe2
  7. 25 Mar, 2015 1 commit
  8. 24 Mar, 2015 2 commits
  9. 23 Mar, 2015 1 commit
  10. 20 Mar, 2015 2 commits