matrixmultiply 0.2.1

General matrix multiplication for f32 and f64 matrices. Operates on matrices with general layout (they can use arbitrary row and column stride). Detects and uses AVX or SSE2 on x86 platforms transparently for higher performance. Uses a microkernel strategy, so that the implementation is easy to parallelize and optimize.
Documentation
language: rust
sudo: false

matrix:
  include:
    - rust: 1.28.0
      env:
        TARGET=x86_64-unknown-linux-gnu
    - rust: stable
      env:
        TARGET=x86_64-unknown-linux-gnu
    - rust: stable
      env:
        TARGET=i686-unknown-linux-gnu
    - rust: beta
      env:
        TARGET=x86_64-unknown-linux-gnu
    - rust: nightly
      env:
        TARGET=x86_64-unknown-linux-gnu
    - rust: nightly
      env:
        TARGET=aarch64-unknown-linux-gnu
        BUILD_ONLY=1
env:
  global:
    - HOST=x86_64-unknown-linux-gnu

addons:
  apt:
    packages:
      # needed for i686-unknown-linux-gnu target
      - gcc-multilib
install:
  # "rustup error: cannot re-add" without this conditional check
- if [[ $HOST != $TARGET ]]; then rustup target add $TARGET; fi

# the main build
script:
  - |
      cargo build --target=$TARGET &&
      ([ -n "$BUILD_ONLY" ] || (
      cargo test --target=$TARGET &&
      cargo test --release --target=$TARGET &&
      cargo doc --target=$TARGET &&
      cargo bench --target=$TARGET ))

branches:
  only:
    - master