Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
302 lines (184 sloc) 12.8 KB
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<meta charset="utf-8">
<title>Modules and Projects - Perl 4 Science</title>
<meta name="author" content="Joel Berger">
<meta name="description" content="Modules and Projects On of the key features of Perl is CPAN, the Comprehensive Perl Archive Network. CPAN is a huge collection of modules published &hellip;">
<!-- -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="">
<link href="/favicon.png" rel="icon">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<script src="/javascripts/modernizr-2.0.js"></script>
<script src="/javascripts/ender.js"></script>
<script src="/javascripts/octopress.js" type="text/javascript"></script>
<link href="/atom.xml" rel="alternate" title="Perl 4 Science" type="application/atom+xml">
<!--Fonts from Google"s Web font directory at -->
<link href=",italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href=",italic,bold,bolditalic" rel="stylesheet" type="text/css">
<body >
<header role="banner"><hgroup style="float: left">
<h1><a href="/">Perl 4 Science</a></h1>
<h2>doing science in our favorite language</h2>
<object style="float: right" type="image/svg+xml" data="/images/onion-scientist.svg" width="200" height="200"></object>
<nav role="navigation"><ul class="subscription" data-subscription="rss">
<li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
<form action="" method="get">
<fieldset role="search">
<input type="hidden" name="q" value="" />
<input class="search" type="text" name="q" results="0" placeholder="Search"/>
<ul class="main-navigation">
<li><a href="/">Home</a></li>
<li><a href="/software">Software</a></li>
<li><a href="/videos">Videos</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="!forum/the-quantified-onion" target="_blank">Google Group</a></li>
<li><a href="/howto">Site HowTo</a></li>
<div id="main">
<div id="content">
<article role="article">
<h1 class="entry-title">Modules and Projects</h1>
<p>On of the key features of Perl is <a href="">CPAN</a>, the Comprehensive Perl Archive Network. CPAN is a huge collection of modules published by authors all over the world, there is a module availble to do almost any task! There are several front end search engines to CPAN, including the vernerable <a href=""></a> and the newer <a href=""></a>.</p>
<p>There are of course other scientific Perl projects which are not hosted on CPAN. We hope to highlight these on this site, but we also want to encourage all module authors to consider publishing to CPAN, not only for the free testing, but to allow easy code reuse in the typical Perl way. If you would like help packaging your module for CPAN please let us know, we would love to help get you started.</p>
<p>So CPAN or not here are a list of useful modules and projects, perhaps a blurb about what they do and a link to relevant repositories and documentation. If you have more to add, let us know, or <a href="/howto">send a pull request</a>.</p>
<h2>Pure Mathematics</h2>
<h3>Numerical Modules/Libraries</h3>
<li><a href="">Perl Data Language</a> - PDL turns Perl into a free, array-oriented, numerical language</li>
<li><a href="">PerlGSL</a> - new project to provide the <a href="">Gnu Scientific Library</a> to Perl with a Perlish feel</li>
<li><a href="">Math::GSL</a> - another wrapper of the GSL for Perl, this one made using <a href="">SWIG</a></li>
<li><a href="">Math::Cephes</a> - Perl interface to the <a href="">cephes</a> library. Provides over 150 mathematical functions</li>
<li><a href="">Math::Pari</a> - Perl interface to the <a href="">PARI</a> library for numerical/scientific/number-theoretic calculations</li>
<li><a href="">PDL::Graphics::Prima</a> - A new graphics engine for PDL based on the <a href="">Prima</a> toolkit</li>
<li><a href="">PDL::Graphics::Gnuplot</a> - An interface between PDL and <a href="">Gnuplot</a></li>
<li><a href="">WebService::Plotly</a> - access the <a href=""></a> API for online plotting</li>
<li><a href="">PDL::Stats</a> - Many useful routines for doing statistical analysis using PDL. Note that the docs might render better on its <a href="">project site</a></li>
<li><a href="">Statistics::R</a> - A bridge between Perl and the statistical language <a href="">R</a></li>
<li><a href="">Physics::Unit</a> - Manipulate physics units and dimensions</li>
<li><a href="">MooseX::Types::NumUnit</a> - (Ab)use <a href="">Moose</a>&#8217;s type coercions to handle inputs with units. Uses <code>Physics::Unit</code> internally.</li>
<h3>Symbolic Mathematics</h3>
<li><a href="">Math::Symbolic</a> - Perl implementation of symbolic mathematics</li>
<li><a href="">Math::Mathematica</a> - A bridge between Perl and the proprietary symbolic language <a href="">Mathematica</a></li>
<li><a href="">Field Line Universal relaXer (FLUX)</a> - is a fluxon model that follows magnetic field evolution in a conductive atmosphere, with exactly prescribed field topology.</li>
<h3>Electron Microscopy</h3>
<li><a href="">Physics::UEMColumn</a> - an implementation of the Analytic Gaussian (AG) electron pulse propagation model, presented by <a href="">Michalik and Sipe</a> and extended by <a href="">Berger and Schroeder</a></li>
<h3>Experiment Analysis</h3>
<li><a href="">Demeter</a> - a comprehensive system for processing and analyzing X-ray Absorption Spectroscopy data.</li>
<h3>High Energy</h3>
<li><a href="">SOOT</a> - Perl interface to CERN&#8217;s <a href="">ROOT</a> system</li>
<li><a href="">Physics::RayTransfer</a> - Object-oriented ray transfer analysis. Designed with special attention to laser cavity stability analysis. (If you are looking for graphic rendering, this probably isn&#8217;t what you are looking for.)</li>
<li><a href="">biodiverse</a> - a tool for the spatial analysis of biological and related diversity</li>
<li><a href="">BioPerl</a> - a community effort to produce Perl code which is useful in biology</li>
<h2>Artificial Intelligence/Machine Learning</h2>
<li><a href="">PerlGP</a> - &#8220;The Open Source Perl Genetic Programming System&#8221;</li>
<li><a href="">Darwin Tunes</a> - &#8220;evolutionary music engine&#8221;, uses both PDL and PerlGP to evolve music. Source: <a href="">github</a>, Articles: <a href="">PNAS</a>, <a href="">New Scientist</a></li>
<li><a href="">Clairlib</a> - &#8220;The Clair library is a suite of open-source Perl modules intended to simplify a number of generic tasks in natural language processing (NLP), information retrieval (IR), and network analysis (NA).&#8221;</li>
<li><a href="">Algorithm::LibLinear</a> - A Perl binding for <a href="">LIBLINEAR</a>, a library for classification/regression using linear SVM and logistic regression</li>
<h2>Parallel Computing</h2>
<li><a href="">MCE</a> - Many-Core Engine for Perl. Provides parallel processing capabilities. Several examples are provided in <a href="!topic/the-quantified-onion/2cSWXogt5Xs">this thread</a>.</li>
<h3><a href="">MPI</a></h3>
<li><a href="">Parallel::MPI</a> - basic bindings to the MPI library</li>
<li><a href="">Parallel::MPI::Simple</a> - a simplified, more Perlish interface to MPI</li>
<li><a href="">PDL::Parallel::MPI</a> - extension to Parallel::MPI with helpful PDL-specific commands</li>
<h3>GPU Computing</h3>
<li><a href="">OpenCL</a> - bindings to the OpenCL library</li>
<li><a href="">CUDA::Minimal</a> - a minimal, Perlish interface to CUDA</li>
<h3>Simple fork-based Parallelization</h3>
<li><a href="">perlfork</a> - Perl&#8217;s built-in fork (and fork emulation on Windows)</li>
<li><a href="">forks</a> - drop-in replacement for Perl&#8217;s threads module that uses forks; only works on Unixish systems</li>
<li><a href="">Parallel::ForkManager</a> - simpler way to manage parallel tasks using forks</li>
<li><a href="">Parallel::Loops</a> - wrapper over Parallel::ForkManager that also provides a simple means for shared data; communicates data back to parent using Storable and shared file handles, so not designed for large exchanges of data</li>
<h3>Simple Perl thread-based Parallelization</h3>
<li><a href="">perlthrtut</a> - Perl&#8217;s built-in threads</li>
<li><a href="">forks</a> - drop-in replacement for Perl&#8217;s threads module that uses forks; only works on Unixish systems</li>
<li>Thread:: - many thread-related modules on CPAN are in the Thread:: namespace</li>
<p><a href="">Lab::Measurement</a> - access measurement hardware for testing using lab hardware</p>
<div class="sharing">
<a href="" class="twitter-share-button" data-url="" data-via="" data-counturl="" >Tweet</a>
<aside class="sidebar">
<h1>Recent Posts</h1>
<ul id="recent_posts">
<footer role="contentinfo"><p>
Copyright &copy; 2013 - Joel Berger -
<span class="credit">Powered by <a href="">Octopress</a></span>
<script type="text/javascript">
var twitterWidgets = document.createElement('script');
twitterWidgets.type = 'text/javascript';
twitterWidgets.async = true;
twitterWidgets.src = '';