<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fourier.fhsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cclark</id>
		<title>PHYSpedia - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://fourier.fhsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cclark"/>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php/Special:Contributions/Cclark"/>
		<updated>2026-04-17T01:34:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=790</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=790"/>
				<updated>2017-05-04T01:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* auto-reconnect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
=Reverse SSH=&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; command has a &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; option that can be used to allow &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; access to a computer that does not have a public, static IP address (such as a computer behind a NAT at home) using another&lt;br /&gt;
computer that does have a public IP Address.&lt;br /&gt;
&lt;br /&gt;
Assume you have two computers, &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; has a public, static IP address, and you have &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; access to it. &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt; is a computer that sits behind your home router, and cannot be accessed from the outside. On &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;, run the following command:&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; ssh -R 2222:localhost:22 Public&lt;br /&gt;
&lt;br /&gt;
This will log into &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; as normal, but it will also setup port forwarding. Now any &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; connections to port &amp;lt;code&amp;gt;2222&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; will be forwarded to port &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;. You could also add the &amp;lt;code&amp;gt;-N&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; options:&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; ssh -f -N -R 2222:localhost:22 Public&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;-N&amp;lt;/code&amp;gt; option tells &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; not to run any commands on the remote (so it will not open a shell), and &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; will cause &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; start and run in the background.&lt;br /&gt;
==auto-reconnect==&lt;br /&gt;
&lt;br /&gt;
The above command will work, but if &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; is disconnected for some reason, you will have to rerun it. In fact, some &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; clients are configured to disconnect after a certain amount of inactivity. The &amp;lt;code&amp;gt;autossh&amp;lt;/code&amp;gt;[http://www.harding.motd.ca/autossh/] utility will monitor an &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; connection and reconnect it if it is disconnected. To use &amp;lt;code&amp;gt;autossh&amp;lt;/code&amp;gt;, run the following command&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; autossh -M 0 -f -N -R 2222:localhost:22 Public&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;-M&amp;lt;/code&amp;gt; option tells &amp;lt;code&amp;gt;autossh&amp;lt;/code&amp;gt; which port to use for monitoring the connection. For more detailed (and advanced configuration), see this [https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/ blog post].&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=789</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=789"/>
				<updated>2017-05-04T01:35:17Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Reverse SSH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
=Reverse SSH=&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; command has a &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; option that can be used to allow &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; access to a computer that does not have a public, static IP address (such as a computer behind a NAT at home) using another&lt;br /&gt;
computer that does have a public IP Address.&lt;br /&gt;
&lt;br /&gt;
Assume you have two computers, &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; has a public, static IP address, and you have &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; access to it. &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt; is a computer that sits behind your home router, and cannot be accessed from the outside. On &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;, run the following command:&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; ssh -R 2222:localhost:22 Public&lt;br /&gt;
&lt;br /&gt;
This will log into &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; as normal, but it will also setup port forwarding. Now any &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; connections to port &amp;lt;code&amp;gt;2222&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; will be forwarded to port &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;. You could also add the &amp;lt;code&amp;gt;-N&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; options:&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; ssh -f -N -R 2222:localhost:22 Public&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;-N&amp;lt;/code&amp;gt; option tells &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; not to run any commands on the remote (so it will not open a shell), and &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; will cause &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; start and run in the background.&lt;br /&gt;
==auto-reconnect==&lt;br /&gt;
&lt;br /&gt;
The above command will work, but&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=788</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=788"/>
				<updated>2017-05-04T01:23:59Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FHSU Physics Department Wiki!'''&lt;br /&gt;
&lt;br /&gt;
==Main Topics==&lt;br /&gt;
===Laser Bioeffects===&lt;br /&gt;
[[LaserBioeffects|Laser Bioeffects]] refers to the interaction of laser light with biological tissues. The FHSU physics department has been researching laser bioeffects since the late 90's and recently&lt;br /&gt;
joined ANSI Z136 committee responsible for laser safety standards.&lt;br /&gt;
&lt;br /&gt;
===Modeling &amp;amp; Simulation===&lt;br /&gt;
==== Codes ====&lt;br /&gt;
[[BTEC]] is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.&lt;br /&gt;
&lt;br /&gt;
[[Schrodinger]] is a FORTRAN code that solves Schrodinger's equation.&lt;br /&gt;
&lt;br /&gt;
====Libraries====&lt;br /&gt;
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to &amp;quot;write your own&amp;quot;, i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.&lt;br /&gt;
&lt;br /&gt;
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.&lt;br /&gt;
&lt;br /&gt;
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.&lt;br /&gt;
&lt;br /&gt;
The [[Common C, C++, FORTRAN Libraries]] page has collection of useful libraries in C, C++, and FORTRAN that are commonly used in numerical simulations.&lt;br /&gt;
&lt;br /&gt;
====Tools====&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[HPC - High Performance Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Computational Physics Links]]&lt;br /&gt;
&lt;br /&gt;
===Doing Science===&lt;br /&gt;
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.&lt;br /&gt;
* [[Linux]] is a free and open source operating system that is very common in academic and research settings.&lt;br /&gt;
* [[LaTeX]] is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.&lt;br /&gt;
* [[Gnuplot]] is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.&lt;br /&gt;
* [[Data Analysis]]: this page contains various information related to analyzing data, including error analysis.&lt;br /&gt;
&lt;br /&gt;
===Student/Class Projects===&lt;br /&gt;
&lt;br /&gt;
[[Project | High Altitude Ballooning]]&lt;br /&gt;
&lt;br /&gt;
[[Yeti | Yeti Comparisons]]&lt;br /&gt;
&lt;br /&gt;
==Random Unorganized Topics==&lt;br /&gt;
To see a set of unorganized links to various projects that have used this wiki, go [[Unorganized Topics|here]]&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Information ==&lt;br /&gt;
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=787</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=787"/>
				<updated>2017-05-04T00:56:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Reverse SSH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
=Reverse SSH=&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; command has a &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; option that can be used to allow ssh access to a computer that does not have a public, static IP address (such as a computer behind a NAT at home) using another&lt;br /&gt;
computer that does have a public IP Address.&lt;br /&gt;
&lt;br /&gt;
Assume you have two computers, &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;Public&amp;lt;/code&amp;gt; has a public, static IP address, and you have ssh access to it. &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt; is a computer that sits behind your home router, and cannot be accessed from the outside. On &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;, run the following command:&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=786</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=786"/>
				<updated>2017-05-04T00:50:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
=Reverse SSH=&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; command has a &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; option that can be used to allow ssh access to a computer that does not have a public, static IP address (such as a computer behind a NAT at home) using another&lt;br /&gt;
computer that does have a public IP Adrees.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Linux&amp;diff=785</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Linux&amp;diff=785"/>
				<updated>2017-05-04T00:41:46Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Misc Links==&lt;br /&gt;
These topics have their own pages.&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot]]&lt;br /&gt;
&lt;br /&gt;
[[Common C, C++, FORTRAN Libraries]]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikibooks.org/wiki/Octave_Programming_Tutorial Octave Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[LaTeX|Latex]]&lt;br /&gt;
&lt;br /&gt;
[[Power User Tools]]&lt;br /&gt;
&lt;br /&gt;
==The Command Line==&lt;br /&gt;
===Useful Commands===&lt;br /&gt;
The following is a (short) list of useful command when manipulating data in text files. Some common options are listed, but may not be explained. For full descriptions of each command, see the &amp;lt;code&amp;gt;man&amp;lt;/code&amp;gt; page. stdin, stdout, and stderr refer to standard input, output and error, respectively.&lt;br /&gt;
&lt;br /&gt;
====File Management: Creating, Viewing, Moving, Deleting, Etc.====&lt;br /&gt;
;&amp;lt;code&amp;gt;ls [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
: list the contents of a directory to stdout&lt;br /&gt;
: if no directory is given, the contents of the current directory are listed&lt;br /&gt;
: common options: -l, -a&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cd [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
: change current working directory to a directory. i.e. go into a directory&lt;br /&gt;
: used to navigate the filesystem&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;mkdir dir&amp;lt;/code&amp;gt;&lt;br /&gt;
: make directory named 'dir'&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;rm file1 [file2 [...] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: remove one or more files&lt;br /&gt;
: if trying to remove a directory, the -r option must be given&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;mv source [source2 [...] ] dest&amp;lt;/code&amp;gt;&lt;br /&gt;
: move a file or files. if multiple files are given, then the last argument must be a directory.&lt;br /&gt;
: the move command will do different things depending on how many arguments are given, and whether the arguments are files or directories.&lt;br /&gt;
: see a list of examples [[Command_Line_Examples:_mv|here]]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cp source [source2 [...] ] dest&amp;lt;/code&amp;gt;&lt;br /&gt;
: copy a file or files. if multiple files are given, then the last argument must be a directory.&lt;br /&gt;
: like the move command, &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; will do different things depending on the arguments given. see the examples for &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; to see how arguments determine the outcome.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cat [file1 [ file2 [...] ] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: print text file(s) to stdout. if multiple files are given, their text is concatenated&lt;br /&gt;
: useful for starting a pipeline of commands from the contents of a text file&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;find dir [options]&amp;lt;/code&amp;gt;&lt;br /&gt;
: find files and directories&lt;br /&gt;
: very powerful search utility for listing all files/directories below a given directory&lt;br /&gt;
: useful options -name,-type&lt;br /&gt;
&lt;br /&gt;
====Processing Text Files====&lt;br /&gt;
;&amp;lt;code&amp;gt;cat [file1 [ file2 [...] ] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: print text file(s) to stdout. if multiple files are given, their text is concatenated&lt;br /&gt;
: useful for starting a pipeline of commands from the contents of a text file&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;grep &amp;quot;pattern&amp;quot; [ file1 [ file2 [...] ] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: find text matching 'pattern' in files, or from stdin, and print matching lines to stdout&lt;br /&gt;
: useful for finding a file containing a specific configuration options&lt;br /&gt;
: useful for filtering output of a program to only those lines that are interesting&lt;br /&gt;
: see a list of examples [[Command Line Examples: grep|here]]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;echo [args...]&amp;lt;/code&amp;gt;&lt;br /&gt;
: print arguments to stdout&lt;br /&gt;
: useful for starting a pipeline of commands from a variable's value&lt;br /&gt;
: useful for printing output to the terminal from inside a script&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, sort lines, and write to stdout&lt;br /&gt;
: common options: -k, -t, -n, -g&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cut&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin and write selected columns to stdout.&lt;br /&gt;
: common options: -d, -f&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;column&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin and write to stdout such that columns are aligned&lt;br /&gt;
: common options: -t&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;head [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and print the first 10 lines&lt;br /&gt;
: useful for taking a peak at the contents of a large file&lt;br /&gt;
: useful for limitng the output of a pipeline&lt;br /&gt;
: common options: -n&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;tail [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and print the last 10 lines&lt;br /&gt;
: similar uses to head&lt;br /&gt;
: can be used with head to print a single line, or range of lines, in a file&lt;br /&gt;
: common options: -n&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;sed 's/old/new/g' [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and replace all instances of 'old' with 'new', then print to stdout&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;gawk '{print $1,$2}' [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and print columns (in this example, we would be printing columns 1 and 2).&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; is often more useful than &amp;lt;code&amp;gt;cut&amp;lt;/code&amp;gt; because it considers columns/fields to be separated by any white space&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; can be used to re-order columns easily&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; can be used to &amp;quot;transform&amp;quot; columns easily (for example, multiply a column by 2)&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; gawk can be used to do ''much'' more than just print columns from a file. see a list of examples [[Command Line Examples: gawk |here]]&lt;br /&gt;
&lt;br /&gt;
===Pipes===&lt;br /&gt;
Pipes allow you to use multiple commands together. Any command that reads input from stdin and writes to stdout can be used in a pipe.&lt;br /&gt;
So, for example, if we wanted to sort a file and print it to the screen, we could do this two ways.&lt;br /&gt;
&lt;br /&gt;
Either just use the sort command&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ sort file.txt&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
or use &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; together with a pipe.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ cat file.txt | sort&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will most often use &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; to start a pipeline of commands.&lt;br /&gt;
&lt;br /&gt;
If we only wanted the first 10 lines of the sorted output, all we have to do is send it to &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ cat file.txt | sort | head&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we only wanted the first 5 lines, we just tell &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; to show only 5 lines.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ cat file.txt | sort | head -n 5&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we wanted to see the ''last'' 5 lines of sorted output, we could ''either'' reverse sort and use head, ''or'' use tail&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
  user@host:~$ cat file.txt | sort -r | head -n 5&lt;br /&gt;
  user@host:~$ cat file.txt | sort    | tail -n 5&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shell Scripts===&lt;br /&gt;
Shell scripts are just text files that contain a list of commands for the shell to run. Anything you can run at the command line can be ran in a shell script.&lt;br /&gt;
To create a shell script, you must do two things.&lt;br /&gt;
# create a text file with the comment &amp;lt;code&amp;gt;#! /bin/bash&amp;lt;/code&amp;gt; on the first line.&lt;br /&gt;
# make the text file &amp;quot;executable&amp;quot; with the &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; command.&lt;br /&gt;
Here is an example of a simple &amp;quot;hello world&amp;quot; script.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #! /bin/bash&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;hello world&amp;quot;&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
If you save this in a file named 'hello.sh', then to run it you must first make it executable.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ chmod +x hello.sh&lt;br /&gt;
 user@host:~$ ./hello.sh&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the page on &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell scripting [[BASH Scripting|here]] for information on writing scripts.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=702</id>
		<title>Yeti</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=702"/>
				<updated>2016-11-18T17:41:16Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Thermal Physics - 2016 Fall=&lt;br /&gt;
==Introduction==&lt;br /&gt;
In Fall 2016 semester, the Thermal Physic class ran an experiment to measure the performance of a Yeti 20 ounce insulated coffee cup. These Yeti cups had become very popular over the previous year, most people that had one said that it was unbelievable how long they would keep coffee hot, so we wanted to find out just how long that was.&lt;br /&gt;
==Procedure==&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
[[File:Lydia.png]]&lt;br /&gt;
&lt;br /&gt;
==Analysis==&lt;br /&gt;
===Newton's Law of Cooling===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;dQ = -h(T-Ta)dt = mcdT&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; is thermal energy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; is the heat transfer coefficient&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; is the temperature of the water&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Ta&amp;lt;/math&amp;gt; is the temperature of the air (environment)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; is time&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; is mass of water&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is specific heat capacity of water&lt;br /&gt;
&lt;br /&gt;
The heat transfer coefficient '''h''' is depended on the material. Alpha is dependent on the surface area and beta is dependent on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\alpha = h/a&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Derivation====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;-h/mc dt = dT/(T-Ta)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-ht/mc + C = ln(T(t)-Ta))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-e^(ht/mc) + C = T(t)-Ta&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-Ce^(ht) + Ta = T(t)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=701</id>
		<title>Yeti</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=701"/>
				<updated>2016-11-18T17:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Thermal Physics - 2016 Fall=&lt;br /&gt;
==Introduction==&lt;br /&gt;
In Fall 2016 semester, the Thermal Physic class ran an experiment to measure the performance of a Yeti 20 ounce insulated coffee cup. These Yeti cups had become very popular over the previous year, most people that had one said that it was unbelievable how long they would keep coffee hot, so we wanted to find out just how long that was.&lt;br /&gt;
&lt;br /&gt;
==Procedure==&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
[[File:Lydia.png]]&lt;br /&gt;
&lt;br /&gt;
==Analysis==&lt;br /&gt;
===Newton's Law of Cooling===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;dQ = -h(T-Ta)dt = mcdT&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; is thermal energy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; is the heat transfer coefficient&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; is the temperature of the water&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Ta&amp;lt;/math&amp;gt; is the temperature of the air (environment)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; is time&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; is mass of water&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is specific heat capacity of water&lt;br /&gt;
&lt;br /&gt;
The heat transfer coefficient '''h''' is depended on the material. Alpha is dependent on the surface area and beta is dependent on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\alpha = h/a&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Derivation====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;-h/mc dt = dT/(T-Ta)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-ht/mc + C = ln(T(t)-Ta))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-e^(ht/mc) + C = T(t)-Ta&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-Ce^(ht) + Ta = T(t)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=695</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=695"/>
				<updated>2016-11-15T03:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Utilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eigen (Linear Algebra)=&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unpacking===&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -xzf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -xjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
===Installing===&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing that it works===&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
This example program is given in the Eigen &amp;quot;Getting Started Guide&amp;quot;. For more information on this example, and a second example, visit the Eigen site: http://eigen.tuxfamily.org/dox/GettingStarted.html&lt;br /&gt;
&lt;br /&gt;
= GSL (Special Functions) =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
= Boost Math Toolket (Special Functions) =&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= BLAS (Linear Algebra) =&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;br /&gt;
&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_62_0/doc/html/property_tree.html Boost Property Tree Library] is an excellent C++ library for managing configuration data. It provides a very simple method to store data in a tree structure and supports loading tree data from files in various format (XML, JSON, INI). It is similar to the [https://github.com/akesterson/dpath-python dpath] library for Python that provides path-like access to nested dict elements.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=694</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=694"/>
				<updated>2016-11-15T03:13:01Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Miscellaneous Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FHSU Physics Department Wiki!'''&lt;br /&gt;
&lt;br /&gt;
==Main Topics==&lt;br /&gt;
===Laser Bioeffects===&lt;br /&gt;
[[LaserBioeffects|Laser Bioeffects]] refers to the interaction of laser light with biological tissues. The FHSU physics department has been researching laser bioeffects since the late 90's and recently&lt;br /&gt;
joined ANSI Z136 committee responsible for laser safety standards.&lt;br /&gt;
&lt;br /&gt;
===Modeling &amp;amp; Simulation===&lt;br /&gt;
==== Codes ====&lt;br /&gt;
[[BTEC]] is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.&lt;br /&gt;
&lt;br /&gt;
[[Schrodinger]] is a FORTRAN code that solves Schrodinger's equation.&lt;br /&gt;
&lt;br /&gt;
====Libraries====&lt;br /&gt;
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to &amp;quot;write your own&amp;quot;, i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.&lt;br /&gt;
&lt;br /&gt;
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.&lt;br /&gt;
&lt;br /&gt;
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.&lt;br /&gt;
&lt;br /&gt;
The [[Common C, C++, FORTRAN Libraries]] page has collection of useful libraries in C, C++, and FORTRAN that are commonly used in numerical simulations.&lt;br /&gt;
&lt;br /&gt;
====Tools====&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[HPC - High Performance Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Computational Physics Links]]&lt;br /&gt;
=====Miscellaneous Tools=====&lt;br /&gt;
&lt;br /&gt;
===Doing Science===&lt;br /&gt;
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.&lt;br /&gt;
* [[Linux]] is a free and open source operating system that is very common in academic and research settings.&lt;br /&gt;
* [[LaTeX]] is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.&lt;br /&gt;
* [[Gnuplot]] is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.&lt;br /&gt;
* [[Data Analysis]]: this page contains various information related to analyzing data, including error analysis.&lt;br /&gt;
&lt;br /&gt;
===Student/Class Projects===&lt;br /&gt;
&lt;br /&gt;
[[Project | High Altitude Ballooning]]&lt;br /&gt;
&lt;br /&gt;
[[Yeti | Yeti Comparisons]]&lt;br /&gt;
&lt;br /&gt;
==Random Unorganized Topics==&lt;br /&gt;
To see a set of unorganized links to various projects that have used this wiki, go [[Unorganized Topics|here]]&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Information ==&lt;br /&gt;
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=693</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=693"/>
				<updated>2016-11-15T03:12:08Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&amp;lt;math&amp;gt;y = mx + b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Magnetic flux through a loop above an infinite straight wire:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\Phi = \iint \vec{B}\cdot d\vec{A} = \iint \frac{\mu_0 i}{2 \pi y} dx dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
=Images=&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=File:Sin.png&amp;diff=692</id>
		<title>File:Sin.png</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=File:Sin.png&amp;diff=692"/>
				<updated>2016-11-15T02:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: Cclark uploaded a new version of File:Sin.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=691</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=691"/>
				<updated>2016-11-10T15:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&amp;lt;math&amp;gt;y = mx + b&amp;lt;/math&amp;gt;&lt;br /&gt;
=Images=&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=690</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=690"/>
				<updated>2016-11-10T15:07:20Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
=Images=&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=689</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=689"/>
				<updated>2016-11-10T15:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=688</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=688"/>
				<updated>2016-11-10T15:06:39Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=687</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=687"/>
				<updated>2016-11-10T15:06:29Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;test&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=686</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=686"/>
				<updated>2016-11-10T14:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=685</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=685"/>
				<updated>2016-11-10T14:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{E} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Sin.png]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=File:Sin.png&amp;diff=684</id>
		<title>File:Sin.png</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=File:Sin.png&amp;diff=684"/>
				<updated>2016-11-10T14:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=683</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=683"/>
				<updated>2016-11-07T21:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{E} = 0&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=682</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Test_Page&amp;diff=682"/>
				<updated>2016-11-07T21:56:42Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: Created page with &amp;quot;This is a page that is just used to test out MediaWiki features.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page that is just used to test out MediaWiki features.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Unorganized_Topics&amp;diff=681</id>
		<title>Unorganized Topics</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Unorganized_Topics&amp;diff=681"/>
				<updated>2016-11-07T21:56:25Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Project details|Robot + Kinect]]&lt;br /&gt;
&lt;br /&gt;
[[Project code|Arduino Interlock]]&lt;br /&gt;
&lt;br /&gt;
[[Workshop|Lego Robotics]]&lt;br /&gt;
&lt;br /&gt;
[[Test Page|Test Page]]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=669</id>
		<title>Yeti</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=669"/>
				<updated>2016-11-07T17:48:37Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Thermal Physics - 2016 Fall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Thermal Physics - 2016 Fall=&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
==Procedure==&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
==Analysis==&lt;br /&gt;
===Derivation===&lt;br /&gt;
&amp;lt;math&amp;gt;3&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=667</id>
		<title>Yeti</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=667"/>
				<updated>2016-11-07T17:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Thermal Physics - 2016 Fall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Thermal Physics - 2016 Fall=&lt;br /&gt;
&lt;br /&gt;
==Procedure==&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
==Analysis==&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=666</id>
		<title>Yeti</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Yeti&amp;diff=666"/>
				<updated>2016-11-07T17:37:13Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: Created page with &amp;quot;=Thermal Physics - 2016 Fall=&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Thermal Physics - 2016 Fall=&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=665</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=665"/>
				<updated>2016-11-07T17:36:35Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Student/Class Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FHSU Physics Department Wiki!'''&lt;br /&gt;
&lt;br /&gt;
==Main Topics==&lt;br /&gt;
===Laser Bioeffects===&lt;br /&gt;
[[LaserBioeffects|Laser Bioeffects]] refers to the interaction of laser light with biological tissues. The FHSU physics department has been researching laser bioeffects since the late 90's and recently&lt;br /&gt;
joined ANSI Z136 committee responsible for laser safety standards.&lt;br /&gt;
&lt;br /&gt;
===Modeling &amp;amp; Simulation===&lt;br /&gt;
==== Codes ====&lt;br /&gt;
[[BTEC]] is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.&lt;br /&gt;
&lt;br /&gt;
[[Schrodinger]] is a FORTRAN code that solves Schrodinger's equation.&lt;br /&gt;
&lt;br /&gt;
====Libraries====&lt;br /&gt;
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to &amp;quot;write your own&amp;quot;, i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.&lt;br /&gt;
&lt;br /&gt;
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.&lt;br /&gt;
&lt;br /&gt;
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.&lt;br /&gt;
&lt;br /&gt;
The [[Common C, C++, FORTRAN Libraries]] page has collection of useful libraries in C, C++, and FORTRAN that are commonly used in numerical simulations.&lt;br /&gt;
&lt;br /&gt;
====Tools====&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[HPC - High Performance Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Computational Physics Links]]&lt;br /&gt;
=====Miscellaneous Tools=====&lt;br /&gt;
[https://www.lucidchart.com/ LucidChart] an an online diagram editor that is pretty good. Students and teachers can signup for an account and get free access to the top-level subscription which allows you to collaborate on creating diagrams, where multiple people are allowed to edit it at once. This tool could be used to quickly draw some simple circuit diagrams, draw a UML diagram of some programming project, create flow charts for planning a presentation or paper, and much more.&lt;br /&gt;
&lt;br /&gt;
===Doing Science===&lt;br /&gt;
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.&lt;br /&gt;
* [[Linux]] is a free and open source operating system that is very common in academic and research settings.&lt;br /&gt;
* [[LaTeX]] is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.&lt;br /&gt;
* [[Gnuplot]] is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.&lt;br /&gt;
* [[Data Analysis]]: this page contains various information related to analyzing data, including error analysis.&lt;br /&gt;
&lt;br /&gt;
===Student/Class Projects===&lt;br /&gt;
&lt;br /&gt;
[[Project | High Altitude Ballooning]]&lt;br /&gt;
&lt;br /&gt;
[[Yeti | Yeti Comparisons]]&lt;br /&gt;
&lt;br /&gt;
==Random Unorganized Topics==&lt;br /&gt;
To see a set of unorganized links to various projects that have used this wiki, go [[Unorganized Topics|here]]&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Information ==&lt;br /&gt;
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=LaserBioeffects&amp;diff=664</id>
		<title>LaserBioeffects</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=LaserBioeffects&amp;diff=664"/>
				<updated>2016-08-04T14:11:52Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Codes==&lt;br /&gt;
[[BTEC]] The Buffington-Thomas-Edward-Clark thermal model is a thermal damage model that integrates many physics models to perform various laser-tissue interaction simulations.&lt;br /&gt;
&lt;br /&gt;
[[TGM]] The Thompson-Gerstman melanin granule model is a thermal damage model based on the heating of melanin granules in tissue.&lt;br /&gt;
&lt;br /&gt;
==Optical Properties==&lt;br /&gt;
Optical properties of tissue are important for simulating laser exposures.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=LaserBioeffects&amp;diff=663</id>
		<title>LaserBioeffects</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=LaserBioeffects&amp;diff=663"/>
				<updated>2016-08-04T14:10:03Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Codes==&lt;br /&gt;
[[BTEC]] The Buffington-Thomas-Edward-Clark thermal model is a thermal damage model that integrates many physics models to perform various laser-tissue interaction simulations.&lt;br /&gt;
&lt;br /&gt;
[[TGM]] The Thompson-Gerstman melanin granule model is a thermal damage model based on the heating of melanin granules in tissue.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=LaserBioeffects&amp;diff=662</id>
		<title>LaserBioeffects</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=LaserBioeffects&amp;diff=662"/>
				<updated>2016-08-04T14:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: Created page with &amp;quot;==Codes== BTEC The Buffington-Thomas-Edward-Clark thermal model is a thermal damage model that integrates many physics models to perform various laser-tissue interaction simu…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Codes==&lt;br /&gt;
[[BTEC]] The Buffington-Thomas-Edward-Clark thermal model is a thermal damage model that integrates many physics models to perform various laser-tissue interaction simulations.&lt;br /&gt;
[[TGM]] The Thompson-Gerstman melanin granule model is a thermal damage model based on the heating of melanin granules in tissue.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=661</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=661"/>
				<updated>2016-08-04T14:02:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Laser Bioeffects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FHSU Physics Department Wiki!'''&lt;br /&gt;
&lt;br /&gt;
==Main Topics==&lt;br /&gt;
===Laser Bioeffects===&lt;br /&gt;
[[LaserBioeffects|Laser Bioeffects]] refers to the interaction of laser light with biological tissues. The FHSU physics department has been researching laser bioeffects since the late 90's and recently&lt;br /&gt;
joined ANSI Z136 committee responsible for laser safety standards.&lt;br /&gt;
&lt;br /&gt;
===Modeling &amp;amp; Simulation===&lt;br /&gt;
==== Codes ====&lt;br /&gt;
[[BTEC]] is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.&lt;br /&gt;
&lt;br /&gt;
[[Schrodinger]] is a FORTRAN code that solves Schrodinger's equation.&lt;br /&gt;
&lt;br /&gt;
====Libraries====&lt;br /&gt;
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to &amp;quot;write your own&amp;quot;, i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.&lt;br /&gt;
&lt;br /&gt;
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.&lt;br /&gt;
&lt;br /&gt;
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.&lt;br /&gt;
&lt;br /&gt;
The [[Common C, C++, FORTRAN Libraries]] page has collection of useful libraries in C, C++, and FORTRAN that are commonly used in numerical simulations.&lt;br /&gt;
&lt;br /&gt;
====Tools====&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[HPC - High Performance Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Computational Physics Links]]&lt;br /&gt;
=====Miscellaneous Tools=====&lt;br /&gt;
[https://www.lucidchart.com/ LucidChart] an an online diagram editor that is pretty good. Students and teachers can signup for an account and get free access to the top-level subscription which allows you to collaborate on creating diagrams, where multiple people are allowed to edit it at once. This tool could be used to quickly draw some simple circuit diagrams, draw a UML diagram of some programming project, create flow charts for planning a presentation or paper, and much more.&lt;br /&gt;
&lt;br /&gt;
===Doing Science===&lt;br /&gt;
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.&lt;br /&gt;
* [[Linux]] is a free and open source operating system that is very common in academic and research settings.&lt;br /&gt;
* [[LaTeX]] is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.&lt;br /&gt;
* [[Gnuplot]] is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.&lt;br /&gt;
* [[Data Analysis]]: this page contains various information related to analyzing data, including error analysis.&lt;br /&gt;
&lt;br /&gt;
===Student/Class Projects===&lt;br /&gt;
&lt;br /&gt;
[[Project | High Altitude Ballooning]]&lt;br /&gt;
&lt;br /&gt;
==Random Unorganized Topics==&lt;br /&gt;
To see a set of unorganized links to various projects that have used this wiki, go [[Unorganized Topics|here]]&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Information ==&lt;br /&gt;
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=660</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=660"/>
				<updated>2016-08-04T14:02:01Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Main Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FHSU Physics Department Wiki!'''&lt;br /&gt;
&lt;br /&gt;
==Main Topics==&lt;br /&gt;
===Laser Bioeffects===&lt;br /&gt;
[[LaserBioeffects|Laser Bioeffects]] studies the interaction of laser light with biological tissues. The FHSU physics department has been researching laser bioeffects since the late 90's and recently&lt;br /&gt;
joined ANSI Z136 committee responsible for laser safety standards.&lt;br /&gt;
&lt;br /&gt;
===Modeling &amp;amp; Simulation===&lt;br /&gt;
==== Codes ====&lt;br /&gt;
[[BTEC]] is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.&lt;br /&gt;
&lt;br /&gt;
[[Schrodinger]] is a FORTRAN code that solves Schrodinger's equation.&lt;br /&gt;
&lt;br /&gt;
====Libraries====&lt;br /&gt;
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to &amp;quot;write your own&amp;quot;, i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.&lt;br /&gt;
&lt;br /&gt;
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.&lt;br /&gt;
&lt;br /&gt;
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.&lt;br /&gt;
&lt;br /&gt;
The [[Common C, C++, FORTRAN Libraries]] page has collection of useful libraries in C, C++, and FORTRAN that are commonly used in numerical simulations.&lt;br /&gt;
&lt;br /&gt;
====Tools====&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[HPC - High Performance Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Computational Physics Links]]&lt;br /&gt;
=====Miscellaneous Tools=====&lt;br /&gt;
[https://www.lucidchart.com/ LucidChart] an an online diagram editor that is pretty good. Students and teachers can signup for an account and get free access to the top-level subscription which allows you to collaborate on creating diagrams, where multiple people are allowed to edit it at once. This tool could be used to quickly draw some simple circuit diagrams, draw a UML diagram of some programming project, create flow charts for planning a presentation or paper, and much more.&lt;br /&gt;
&lt;br /&gt;
===Doing Science===&lt;br /&gt;
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.&lt;br /&gt;
* [[Linux]] is a free and open source operating system that is very common in academic and research settings.&lt;br /&gt;
* [[LaTeX]] is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.&lt;br /&gt;
* [[Gnuplot]] is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.&lt;br /&gt;
* [[Data Analysis]]: this page contains various information related to analyzing data, including error analysis.&lt;br /&gt;
&lt;br /&gt;
===Student/Class Projects===&lt;br /&gt;
&lt;br /&gt;
[[Project | High Altitude Ballooning]]&lt;br /&gt;
&lt;br /&gt;
==Random Unorganized Topics==&lt;br /&gt;
To see a set of unorganized links to various projects that have used this wiki, go [[Unorganized Topics|here]]&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Information ==&lt;br /&gt;
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=659</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Main_Page&amp;diff=659"/>
				<updated>2016-08-04T13:57:52Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Student/Class Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FHSU Physics Department Wiki!'''&lt;br /&gt;
&lt;br /&gt;
==Main Topics==&lt;br /&gt;
&lt;br /&gt;
===Modeling &amp;amp; Simulation===&lt;br /&gt;
==== Codes ====&lt;br /&gt;
[[BTEC]] is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.&lt;br /&gt;
&lt;br /&gt;
[[Schrodinger]] is a FORTRAN code that solves Schrodinger's equation.&lt;br /&gt;
&lt;br /&gt;
====Libraries====&lt;br /&gt;
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to &amp;quot;write your own&amp;quot;, i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.&lt;br /&gt;
&lt;br /&gt;
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.&lt;br /&gt;
&lt;br /&gt;
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.&lt;br /&gt;
&lt;br /&gt;
The [[Common C, C++, FORTRAN Libraries]] page has collection of useful libraries in C, C++, and FORTRAN that are commonly used in numerical simulations.&lt;br /&gt;
&lt;br /&gt;
====Tools====&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[HPC - High Performance Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Computational Physics Links]]&lt;br /&gt;
=====Miscellaneous Tools=====&lt;br /&gt;
[https://www.lucidchart.com/ LucidChart] an an online diagram editor that is pretty good. Students and teachers can signup for an account and get free access to the top-level subscription which allows you to collaborate on creating diagrams, where multiple people are allowed to edit it at once. This tool could be used to quickly draw some simple circuit diagrams, draw a UML diagram of some programming project, create flow charts for planning a presentation or paper, and much more.&lt;br /&gt;
&lt;br /&gt;
===Doing Science===&lt;br /&gt;
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.&lt;br /&gt;
* [[Linux]] is a free and open source operating system that is very common in academic and research settings.&lt;br /&gt;
* [[LaTeX]] is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.&lt;br /&gt;
* [[Gnuplot]] is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.&lt;br /&gt;
* [[Data Analysis]]: this page contains various information related to analyzing data, including error analysis.&lt;br /&gt;
&lt;br /&gt;
===Student/Class Projects===&lt;br /&gt;
&lt;br /&gt;
[[Project | High Altitude Ballooning]]&lt;br /&gt;
&lt;br /&gt;
==Random Unorganized Topics==&lt;br /&gt;
To see a set of unorganized links to various projects that have used this wiki, go [[Unorganized Topics|here]]&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Information ==&lt;br /&gt;
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=658</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=658"/>
				<updated>2015-08-11T14:35:29Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Adding new repo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
Next, add the repository to the &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; configuration.&lt;br /&gt;
 &lt;br /&gt;
  &amp;gt; vim ~/.config/mr/available.d/zsh.git&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  [$HOME/.config/vcsh/repo.d/zsh.git]&lt;br /&gt;
  checkout = vcsh clone ssh://user@host/repo/with/write/access zsh&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=657</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=657"/>
				<updated>2015-07-07T14:20:42Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Adding new repo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
Next, add the repository to the &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; configuration.&lt;br /&gt;
 &lt;br /&gt;
  &amp;gt; vim ~/.config/mr/&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  [$HOME/.config/vcsh/repo.d/zsh.git]&lt;br /&gt;
  checkout = vcsh clone ssh://user@host/repo/with/write/access zsh&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=656</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=656"/>
				<updated>2015-07-07T14:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Adding new repo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
Next, add the repository to the &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; configuration.&lt;br /&gt;
 &lt;br /&gt;
  &amp;gt; vim ~/.config/mr/&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  [$HOME/.config/vcsh/repo.d/zsh.git]&lt;br /&gt;
  checkout = vcsh clone ssh://repos@eigen.fhsu.edu/cclark/configs/vcsh/zsh zsh&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=655</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=655"/>
				<updated>2015-07-07T14:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Adding new repo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;br /&gt;
&lt;br /&gt;
Next, add the repository to the &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; configuration.&lt;br /&gt;
 &lt;br /&gt;
  &amp;gt; vim ~/.config/mr/&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=654</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=654"/>
				<updated>2015-07-03T15:39:41Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Managing configs with vcsh and mr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;br /&gt;
&lt;br /&gt;
==Common Tasks==&lt;br /&gt;
&lt;br /&gt;
===Adding new repo===&lt;br /&gt;
&lt;br /&gt;
Let say you want to add a repo for tracking your zsh configuration.&lt;br /&gt;
First, create a gitignore file for the repo so you can just do &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vim ~/.gitignore.d/zsh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Add the following lines&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  !/.zsh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the repository and push to a remote&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; vcsh init zsh    # create the repo&lt;br /&gt;
  &amp;gt; vcsh zsh add .   # add all files not masked by ~/.gitignore.d/zsh&lt;br /&gt;
  &amp;gt; vcsh zsh commit  # commit files&lt;br /&gt;
  &amp;gt; vcsh zsh remote add origin ssh://user@host/repo/with/write/access  # create remote repo&lt;br /&gt;
  &amp;gt; vcsh zsh push --set-upstream origin master # push to the origin and setup tracking&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=653</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=653"/>
				<updated>2015-07-03T15:27:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Managing configs with vcsh and mr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; [https://github.com/RichiH/vcsh] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; [https://github.com/joeyh/myrepos] that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=652</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=652"/>
				<updated>2015-07-03T15:25:04Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Managing configs with vcsh and mr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; is a utility that allows you to create multiple git repositories to store configuration files in your home directory.&lt;br /&gt;
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt; that allows&lt;br /&gt;
you to synchronize all of your config repos with a single command.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=651</id>
		<title>Power User Tools</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Power_User_Tools&amp;diff=651"/>
				<updated>2015-07-03T15:14:41Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: Created page with &amp;quot;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Managing configs with &amp;lt;code&amp;gt;vcsh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mr&amp;lt;/code&amp;gt;=&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Linux&amp;diff=650</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Linux&amp;diff=650"/>
				<updated>2015-07-03T15:12:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Misc Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Misc Links==&lt;br /&gt;
These topics have their own pages.&lt;br /&gt;
&lt;br /&gt;
[[Getting Started With Linux|Getting Started]]&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot]]&lt;br /&gt;
&lt;br /&gt;
[[Common C, C++, FORTRAN Libraries]]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikibooks.org/wiki/Octave_Programming_Tutorial Octave Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[LaTeX|Latex]]&lt;br /&gt;
&lt;br /&gt;
[[Power User Tools]]&lt;br /&gt;
&lt;br /&gt;
==The Command Line==&lt;br /&gt;
===Useful Commands===&lt;br /&gt;
The following is a (short) list of useful command when manipulating data in text files. Some common options are listed, but may not be explained. For full descriptions of each command, see the &amp;lt;code&amp;gt;man&amp;lt;/code&amp;gt; page. stdin, stdout, and stderr refer to standard input, output and error, respectively.&lt;br /&gt;
&lt;br /&gt;
====File Management: Creating, Viewing, Moving, Deleting, Etc.====&lt;br /&gt;
;&amp;lt;code&amp;gt;ls [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
: list the contents of a directory to stdout&lt;br /&gt;
: if no directory is given, the contents of the current directory are listed&lt;br /&gt;
: common options: -l, -a&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cd [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
: change current working directory to a directory. i.e. go into a directory&lt;br /&gt;
: used to navigate the filesystem&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;mkdir dir&amp;lt;/code&amp;gt;&lt;br /&gt;
: make directory named 'dir'&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;rm file1 [file2 [...] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: remove one or more files&lt;br /&gt;
: if trying to remove a directory, the -r option must be given&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;mv source [source2 [...] ] dest&amp;lt;/code&amp;gt;&lt;br /&gt;
: move a file or files. if multiple files are given, then the last argument must be a directory.&lt;br /&gt;
: the move command will do different things depending on how many arguments are given, and whether the arguments are files or directories.&lt;br /&gt;
: see a list of examples [[Command_Line_Examples:_mv|here]]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cp source [source2 [...] ] dest&amp;lt;/code&amp;gt;&lt;br /&gt;
: copy a file or files. if multiple files are given, then the last argument must be a directory.&lt;br /&gt;
: like the move command, &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; will do different things depending on the arguments given. see the examples for &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; to see how arguments determine the outcome.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cat [file1 [ file2 [...] ] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: print text file(s) to stdout. if multiple files are given, their text is concatenated&lt;br /&gt;
: useful for starting a pipeline of commands from the contents of a text file&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;find dir [options]&amp;lt;/code&amp;gt;&lt;br /&gt;
: find files and directories&lt;br /&gt;
: very powerful search utility for listing all files/directories below a given directory&lt;br /&gt;
: useful options -name,-type&lt;br /&gt;
&lt;br /&gt;
====Processing Text Files====&lt;br /&gt;
;&amp;lt;code&amp;gt;cat [file1 [ file2 [...] ] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: print text file(s) to stdout. if multiple files are given, their text is concatenated&lt;br /&gt;
: useful for starting a pipeline of commands from the contents of a text file&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;grep &amp;quot;pattern&amp;quot; [ file1 [ file2 [...] ] ]&amp;lt;/code&amp;gt;&lt;br /&gt;
: find text matching 'pattern' in files, or from stdin, and print matching lines to stdout&lt;br /&gt;
: useful for finding a file containing a specific configuration options&lt;br /&gt;
: useful for filtering output of a program to only those lines that are interesting&lt;br /&gt;
: see a list of examples [[Command Line Examples: grep|here]]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;echo [args...]&amp;lt;/code&amp;gt;&lt;br /&gt;
: print arguments to stdout&lt;br /&gt;
: useful for starting a pipeline of commands from a variable's value&lt;br /&gt;
: useful for printing output to the terminal from inside a script&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, sort lines, and write to stdout&lt;br /&gt;
: common options: -k, -t, -n, -g&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;cut&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin and write selected columns to stdout.&lt;br /&gt;
: common options: -d, -f&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;column&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin and write to stdout such that columns are aligned&lt;br /&gt;
: common options: -t&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;head [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and print the first 10 lines&lt;br /&gt;
: useful for taking a peak at the contents of a large file&lt;br /&gt;
: useful for limitng the output of a pipeline&lt;br /&gt;
: common options: -n&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;tail [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and print the last 10 lines&lt;br /&gt;
: similar uses to head&lt;br /&gt;
: can be used with head to print a single line, or range of lines, in a file&lt;br /&gt;
: common options: -n&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;sed 's/old/new/g' [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and replace all instances of 'old' with 'new', then print to stdout&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;gawk '{print $1,$2}' [file]&amp;lt;/code&amp;gt;&lt;br /&gt;
: read from stdin, or from a file, and print columns (in this example, we would be printing columns 1 and 2).&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; is often more useful than &amp;lt;code&amp;gt;cut&amp;lt;/code&amp;gt; because it considers columns/fields to be separated by any white space&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; can be used to re-order columns easily&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; can be used to &amp;quot;transform&amp;quot; columns easily (for example, multiply a column by 2)&lt;br /&gt;
: &amp;lt;code&amp;gt;gawk&amp;lt;/code&amp;gt; gawk can be used to do ''much'' more than just print columns from a file. see a list of examples [[Command Line Examples: gawk |here]]&lt;br /&gt;
&lt;br /&gt;
===Pipes===&lt;br /&gt;
Pipes allow you to use multiple commands together. Any command that reads input from stdin and writes to stdout can be used in a pipe.&lt;br /&gt;
So, for example, if we wanted to sort a file and print it to the screen, we could do this two ways.&lt;br /&gt;
&lt;br /&gt;
Either just use the sort command&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ sort file.txt&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
or use &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; together with a pipe.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ cat file.txt | sort&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will most often use &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; to start a pipeline of commands.&lt;br /&gt;
&lt;br /&gt;
If we only wanted the first 10 lines of the sorted output, all we have to do is send it to &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ cat file.txt | sort | head&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we only wanted the first 5 lines, we just tell &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; to show only 5 lines.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ cat file.txt | sort | head -n 5&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we wanted to see the ''last'' 5 lines of sorted output, we could ''either'' reverse sort and use head, ''or'' use tail&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
  user@host:~$ cat file.txt | sort -r | head -n 5&lt;br /&gt;
  user@host:~$ cat file.txt | sort    | tail -n 5&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shell Scripts===&lt;br /&gt;
Shell scripts are just text files that contain a list of commands for the shell to run. Anything you can run at the command line can be ran in a shell script.&lt;br /&gt;
To create a shell script, you must do two things.&lt;br /&gt;
# create a text file with the comment &amp;lt;code&amp;gt;#! /bin/bash&amp;lt;/code&amp;gt; on the first line.&lt;br /&gt;
# make the text file &amp;quot;executable&amp;quot; with the &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; command.&lt;br /&gt;
Here is an example of a simple &amp;quot;hello world&amp;quot; script.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #! /bin/bash&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;hello world&amp;quot;&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
If you save this in a file named 'hello.sh', then to run it you must first make it executable.&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 user@host:~$ chmod +x hello.sh&lt;br /&gt;
 user@host:~$ ./hello.sh&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the page on &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell scripting [[BASH Scripting|here]] for information on writing scripts.&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=649</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=649"/>
				<updated>2014-03-28T14:56:04Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Unpacking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eigen (Linear Algebra)=&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unpacking===&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -xzf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -xjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
===Installing===&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing that it works===&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
This example program is given in the Eigen &amp;quot;Getting Started Guide&amp;quot;. For more information on this example, and a second example, visit the Eigen site: http://eigen.tuxfamily.org/dox/GettingStarted.html&lt;br /&gt;
&lt;br /&gt;
= GSL (Special Functions) =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
= Boost Math Toolket (Special Functions) =&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= BLAS (Linear Algebra) =&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=648</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=648"/>
				<updated>2014-03-24T13:49:38Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Eigen (Linear Algebra) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eigen (Linear Algebra)=&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unpacking===&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
===Installing===&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing that it works===&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
This example program is given in the Eigen &amp;quot;Getting Started Guide&amp;quot;. For more information on this example, and a second example, visit the Eigen site: http://eigen.tuxfamily.org/dox/GettingStarted.html&lt;br /&gt;
&lt;br /&gt;
= GSL (Special Functions) =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
= Boost Math Toolket (Special Functions) =&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= BLAS (Linear Algebra) =&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=647</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=647"/>
				<updated>2014-03-23T19:57:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eigen (Linear Algebra)=&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unpacking===&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
===Installing===&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing that it works===&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
= GSL (Special Functions) =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
= Boost Math Toolket (Special Functions) =&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= BLAS (Linear Algebra) =&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=646</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=646"/>
				<updated>2014-03-23T19:56:45Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eigen (Linear Algebra)=&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unpacking===&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
===Installing===&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing that it works===&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
= BLAS under Linux =&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
= GSL (Special Functions) =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
= Boost Math Toolket (Special Functions) =&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=645</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=645"/>
				<updated>2014-03-23T19:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Linear Algebra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eigen (Linear Algebra)=&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unpacking===&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
===Installing===&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing that it works===&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
= BLAS under Linux =&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
= Special Functions =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=644</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=644"/>
				<updated>2014-03-23T19:26:31Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Testing that it works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linear Algebra =&lt;br /&gt;
==Eigen==&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
===Using===&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
====Downloading====&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Unpacking====&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
====Installing====&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Testing that it works====&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
This should output&lt;br /&gt;
 3 -1&lt;br /&gt;
 2.5 1.5&lt;br /&gt;
to the console.&lt;br /&gt;
&lt;br /&gt;
This test program illustrates how to create a 2x2 matrix and set its components (elements). You can create an arbitrarily sized matrix in an analogous way.&lt;br /&gt;
&lt;br /&gt;
== BLAS under Linux ==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
= Special Functions =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=643</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=643"/>
				<updated>2014-03-23T19:23:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Linear Algebra */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linear Algebra =&lt;br /&gt;
==Eigen==&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
===Using===&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
====Downloading====&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Unpacking====&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
====Installing====&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Testing that it works====&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== BLAS under Linux ==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
= Special Functions =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	<entry>
		<id>http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=642</id>
		<title>Common C, C++, FORTRAN Libraries</title>
		<link rel="alternate" type="text/html" href="http://fourier.fhsu.edu/index.php?title=Common_C,_C%2B%2B,_FORTRAN_Libraries&amp;diff=642"/>
				<updated>2014-03-23T19:21:14Z</updated>
		
		<summary type="html">&lt;p&gt;Cclark: /* Eigen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a number of common libraries for computational physics and numerical analysis.  Here are a few links for tutorials and information for installation of commonly-used tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linear Algebra =&lt;br /&gt;
==Eigen==&lt;br /&gt;
&lt;br /&gt;
[http://eigen.tuxfamily.org Eigen] is linear algebra library that supports computing the eigenvalue and eigenvectors of real and complex matrices. It is relatively simple to use because it is a pure template library, and therefore does not require you to compile anything in the library to use it, and it is written in standard C++, so it will work on all platforms (Linux, Mac OS, and Windows). All you need to do is download the library and put the source code in your project directory.&lt;br /&gt;
&lt;br /&gt;
===Using===&lt;br /&gt;
Let's assume you have a C++ program called StateFinder  that you want to use the Eigen library for to calculate eigenvalues of a matrix. You create a directory called &amp;lt;code&amp;gt;StateFinder&amp;lt;/code&amp;gt; for the program, and you have a single source file named &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt; (If you are using an IDE such as Visual Studio, Xcode, or Eclipse, it will have created the project directory for you). The following instructions will describe how to use the Eigen library for this project (It does. They will not install the library to be system wide. All that is required in this scenario is to download the Eigen library archive, unpack the archive, and copy the Eigen source directory to your project directory.&lt;br /&gt;
&lt;br /&gt;
====Downloading====&lt;br /&gt;
Download the latest version of the library from http://eigen.tuxfamily.org. On the right side of the page, you should see &amp;quot;The latest stable release...&amp;quot;. Click on the tar.bz2 (Linux and Mac), tar.gz (Linux and Mac), or zip (Windows) links. This will download a file whose name starts with eigen-eigen-. For example, &amp;lt;code&amp;gt;eigen-eigen-6b38706d90a9.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Unpacking====&lt;br /&gt;
On Linux, use tar to unpack the tar.bz2 file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.bz2&lt;br /&gt;
The tar program will also unpack the tar.gz file,&lt;br /&gt;
 &amp;gt; tar -zjf eigen-eigen-*.tar.gz&lt;br /&gt;
On windows, use 7-Zip, or some other zip program to &amp;quot;extract&amp;quot; the zip file contents.&lt;br /&gt;
&lt;br /&gt;
====Installing====&lt;br /&gt;
To &amp;quot;install&amp;quot; Eigen, you only need to copy the Eigen source directory into you project directory. The directory you want is named &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt;. It should have several files in it, including &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Dense&amp;lt;/code&amp;gt;. Copy this directory into your project directory. It should be in the &amp;lt;em&amp;gt;same&amp;lt;/em&amp;gt; directory as you source file &amp;lt;code&amp;gt;StateFinder.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Testing that it works====&lt;br /&gt;
Now you can test that you have installed Eigen correctly by compiling and running the following program.&lt;br /&gt;
&lt;br /&gt;
for non-Visual Studio compilers, use this&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
for Visual Studio compilers, use&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;Eigen/Dense&amp;quot;&lt;br /&gt;
 using Eigen::MatrixXd;&lt;br /&gt;
 &lt;br /&gt;
  int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	MatrixXd m(2,2);&lt;br /&gt;
 	m(0,0) = 3;&lt;br /&gt;
 	m(1,0) = 2.5;&lt;br /&gt;
 	m(0,1) = -1;&lt;br /&gt;
 	m(1,1) = m(1,0) + m(0,1);&lt;br /&gt;
 	std::cout &amp;lt;&amp;lt; m &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== BLAS under Linux ==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS] stands for &amp;quot;Basic Linear Algebra Subprograms&amp;quot;. Originally written in FORTRAN in the late 70's, it is still used by many libraries to do &amp;quot;low level&amp;quot; linear algebra operations. It is still the standard by which the performance of all other linear algebra libraries are measured.&lt;br /&gt;
&lt;br /&gt;
[http://www.seehuhn.de/pages/linear Linear Algebra in Linux (BLAS/LAPACK)]&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/linux-software-2/blas-installation-using-yum-doesnt-install-header-files-887814/ Setting up BLAS in Linux (yum-based systems)]&lt;br /&gt;
&lt;br /&gt;
[http://vibrationdata.wordpress.com/2011/11/04/matrix-multiplication-in-blas/ Matrix Multiplication with BLAS and CBLAS]&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/manual/html_node/BLAS-Examples.html GSL BLAS Examples (such as matrix multiply)]&lt;br /&gt;
&lt;br /&gt;
= Special Functions =&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/software/gsl/ GNU Scientific Library(GSL)]&lt;br /&gt;
&lt;br /&gt;
The GSL also has calls for C and C++ for a variety of linear algebra functions found in BLAS and other packages.&lt;br /&gt;
&lt;br /&gt;
The [http://www.boost.org/doc/libs/1_55_0/libs/math/doc/html/index.html Boost Math Toolkit] has several utilities for doing various types of mathematical operations including several special functions.&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;/div&gt;</summary>
		<author><name>Cclark</name></author>	</entry>

	</feed>