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
      6762f25a
    • 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
      aa849106
    • Karl Wette's avatar
      ComputeFstat: rename '..._dtor' variables to '..._destroy_func' · 2bf18563
      Karl Wette authored
      - More descriptive names
      - Refs #2001
      Original: 4262e8cafe44a0979d4289178f0e42ea3c40f828
      2bf18563
    • Karl Wette's avatar
      ComputeFstat: fully implement runtime selection of Demod hotloops · 5f90c91a
      Karl Wette authored
      - Added LALSUITE_CHECK_SIMD and (new) LALPULSAR_CHECK_ALTIVEC to LALPulsar
        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
      5f90c91a
    • 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
      c4f6479c
    • 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
      1f2731ba
    • 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
      af43a8a8
    • 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
      5db670e8
    • 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
      65679b16
    • 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
      16fa6a84
    • 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
      76f4e1e5
    • 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
      21f69438
    • 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
        ComputeFstat_Demod.c
      Original: 9f6ecc2429b6dc96a8e88364597a06dd41903b42
      803a53d7
    • Karl Wette's avatar
      ComputeFstat_DemodHL_Altivec.i: minor bracket cleanup · e3963513
      Karl Wette authored
      Original: f11583b838a06838ba2f063ed5dd8483c7330e2a
      e3963513
    • Karl Wette's avatar
      ComputeFstat.[ch]: minor documentation and comment cleanups · 0490f5de
      Karl Wette authored
      Original: 818f4c0506075b59ea29b0149ca7b3a90f63d085
      0490f5de
    • Karl Wette's avatar
      ComputeFstat.c: whitespace cleanup · 121625e9
      Karl Wette authored
      Original: af0ce524c0c43f42dd83c546e495a45f60aea93a
      121625e9
  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
      d896f77d
    • 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
      978595e1
    • 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
      2f9b4ccf
  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
      90e3674b
  7. 25 Mar, 2015 1 commit
  8. 24 Mar, 2015 2 commits
  9. 23 Mar, 2015 1 commit
  10. 20 Mar, 2015 2 commits