Skip to content

Latest commit

 

History

History
81 lines (65 loc) · 6.82 KB

ToolChain.md

File metadata and controls

81 lines (65 loc) · 6.82 KB

Tool Chain for Physicists

This page is adapted from TutorialForPhysicists. Please help us benchmark these packages [:thumbsup: or :thumbsdown:?] under issue #1)

There are some useful tools (Packages) that will help you work with Julia in Physics, but you might want to find what you want first inJulia.jl.

  • Julia.jl Curated decibans of Julia language. Standard library in Julia is consist of LinearAlgebra, SparseArrays, Statistics and many other useful modules.

Tensor Operations and Linear Algebra

Tensor Basics

  • 👍OMEinsum A Julia package for einsum and its contraction order optimization.
  • 👍TensorOperations A Julia package for tensor contractions and related operations
  • 👎Einsum.jl Einstein summation notation in Julia
  • CuArrays.jl A Curious Cumulation of CUDA Cuisine
  • 👍StaticArrays.jl Statically sized arrays for Julia
  • LuxurySparse.jl High performance extensions for sparse matrices.

Large Sparse Matrix Eigensolvers

  • IterativeSolvers.jl Iterative algorithms for solving linear systems, eigensystems, and singular value problems
  • 👍KrylovKit.jl A Julia package collecting a number of Krylov-based algorithms for linear problems, singular value and eigenvalue problems and the application of functions of linear maps or operators to vectors.
  • JacobiDavidson.jl An implementation of Jacobi-Davidson in Julia.
  • ArnoldiMethod.jl The Implicitly Restarted Arnoldi Method, natively in Julia.
  • Krylov.jl: part of the JuliaSmoothOptimizers organisation, solves linear systems and least square problems, specific for linear operators from LinearOperators.jl.
  • KrylovMethods.jl: specific for sparse matrices

Others

  • 👍Expokit.jl This package provides Julia implementations of some routines contained in EXPOKIT.

  • ExpmV.jl This is a Julia translation of the MATLAB implementation of Al-Mohy and Higham's function for computing expm(t*A)*v when A is sparse, without explicitly computing expm(A).

  • JuMP.jl Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)

  • LowRankModels.jl LowRankModels.jl is a julia package for modeling and fitting generalized low rank models.

Mathematics and Physics

  • Cliffords.jl Efficient calculation of Clifford circuits in Julia.

  • 👍StatsBase.jl StatsBase.jl is a Julia package that provides basic support for statistics.

  • Symata.jl language for symbolic mathematics

  • 👍Yao.jl Extensible, Efficient Quantum Algorithm Design for Humans.

  • QuantumLab.jl A workbench for Quantum Chemistry and Quantum Physics in Julia

  • QuantumOptics.jl Library for the numerical simulation of closed as well as open quantum systems.

Deep Learning

Frameworks

  • 👍Knet.jl Koç University deep learning framework.
  • TensorFlow.jl A Julia wrapper for TensorFlow
  • MXNet.jl MXNet Julia Package - flexible and efficient deep learning in Julia

Auto Differentiation

Others

  • MLKernels.jl A Julia package for Mercer kernel functions (or the covariance functions used in Gaussian processes) that are used in the kernel methods of machine learning

Data Science

Data Structure

  • LightGraphs.jl An optimized graphs package for Julia
  • AbstractTrees.jl Abstract julia interfaces for working with trees
  • Dendriform.jl Dendriform di-algebra algorithms to compute using Loday's arithmetic on groves of planar binary trees.

Data Compression and Storage

  • JLD.jl Saving and loading julia variables while preserving native types
  • JLD2.jl HDF5-compatible file format in pure Julia

Data Visualization

  • Interact.jl Interactive widgets to play with your Julia code
  • Plots.jl Powerful convenience for Julia visualizations and data analysis
  • 👍PyPlot.jl This module provides a Julia interface to the Matplotlib plotting library from Python, and specifically to the matplotlib.pyplot module.

Other Developer's Tools

  • 👍BenchmarkTools.jl BenchmarkTools makes performance tracking of Julia code easy by supplying a framework for writing and running groups of benchmarks as well as comparing benchmark results.
  • PackageCompiler.jl Compile your Julia Package
  • StatProfilerHTML.jl Show Julia profiling data in an explorable HTML page
  • Cxx.jl The Julia C++ Interface
  • 👍PyCall.jl This package provides the ability to directly call and fully interoperate with Python from the Julia language.
  • 👍Lazy.jl provides Julia with the cornerstones of functional programming