GithubHelp home page GithubHelp logo

gbutil's Introduction

gbutil

Gary's C++ and Python utility routines

Description

Miscellaneous classes and functions of wide utility. Python routines include some specifications of the DECam focal plane properties.

Prerequisites

  • A C++ compiler that is compliant with C++-11 standards.
  • FFTW Fourier transform library, if you want to use the fft class in C++.
  • yaml-cpp YAML-format reader by Jay Bedel, if you want to build the Lookup1d and Poly2d classes. As of this writing (Mar 2017), the releases all depend on Boost but the master branch does not, so I use the master branch.
  • A linear algebra library, either
  • TMV by Mike Jarvis, -OR-
  • Eigen.
  • Either of these can make good use of the Intel Math Kernel Library
  • The Python libraries assume that astropy is available, and the routines to acquire Gaia data make use of astroquery.

Installation:

C++

You of course need to install the external libraries TMV or Eigen, and (optionally) MKL. And the FFTW and yaml-cpp libraries, should you want to use the utilities that depend on them. The Makefile requires these environment variables to be set:

  • CXX: path to the C++-11-compliant compiler/linker.
  • CXXFLAGS: options given to the compiler/linker. Be sure to specify C++-11 (or higher) compliance if it's not the default, and an optimizer (the linear algebra libraries rely heavily on compile-time optimization).
  • FFTW_DIR: (optional) path to root of the FFTW installation, should have /include and /lib subdirectories.
  • YAML_DIR: (optional) path to root of the yaml-cpp installation
    • TMV_DIR: path to root of the TMV installation
    • -OR-
    • EIGEN_DIR: path to root of Eigen installation. This is header-only library; there should be a ${EIGEN_DIR}/Eigen subdirectory where the headers are found. If both TMV_DIR and EIGEN_DIR are given, TMV will be used.
  • MKL_DIR: Path to the MKL. This is optional, and should be given if you want to use Eigen with MKL. TMV usage of MKL will have been determined when you built it.

Once these are all set you should be able to just run make to build the C++ programs. The few undocumented test routines are built by make tests.

Python

Either python setup.py install or just make python will install the Python package gbutil (which include that subpackage decam).

Use

See the individual utilities' codes for documentation on what they do.

gbutil's People

Contributors

gbernstein avatar

Watchers

 avatar  avatar  avatar

Forkers

cmsaunders

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.