SciPy special functions source and citations - scipy

I would like to know where I can find the original source of the algorithms used in the various Bessel functions within scipy.special (jn, yn, kn, in), so that I could cite them, as well as read about them. I'd also like to understand the limits of reliability (e.g. high orders and very large or small arguments). I'm guessing I could start by reading the citations. I understand that I'll also have to learn about how to deal with very large and small values within python itself.
If the source code (C?) is viewable within my Python and/or SciPy installation, it would be great to understand how I could find it! I'm using python but not familiar with its installation - I really just dragged the python and scipy icons into the applications folder icon a year ago, and haven't looked since. (I'm using python 2.7 on OSX).
If this is already available somewhere I haven't found, a link to that would also be appreciated!

Related

Problems in OpenModelica v1.19.2 when installing OpenHydraulics v1.0.1 with Modelica Standard Lib v3.2

Greeting Everyone, I am a new one here.
I'm a brand new Modelica user. I'm trying to learn the language with OpenModelica. I'd like to use OpenHydraulics which is in github link in OpenModelica (specifically in the OMEdit Connection Editor).
I downloaded OpenModelica v1.19.2 and Modelica Standard Lib v3.2 to browse and run the library OpenHydraulics v1.0.1. However, when I open the Excavator example and try to Instantiate or Simulate the model I get many errors of the form:
[OpenHydraulics.Basic.VariableRestriction: 51:3-54:64]: Function ReynoldsNumber_m_flow not found in scope VariableRestriction.
Could you help me with this problem?
Thanks in advance.
there are a couple of things you need to take into consideration:
The current version of OpenHydraulics is still the original release from almost 10 years ago.
The library was developed using Dymola which at the time also supported a couple of non-standard Modelica, Dymola-specific constructs that other tools struggle to work with.
The example you are trying to run is the most complex one utilizing almost all of the power of the library and hence has quite a high degree of complexity.
Taking all this together means that OpenModelica is bound to struggle with that example. But all is not lost. If you actually look at the more simple circuit examples (under Circuit) you'll find that they work just fine. And depending on your application area they might already demonstrate a usage that will fit your needs.
I hope this helps.

Tool for testing/grading IPython notebook homeworks

I'll be teaching a scientific computing class with IPython notebook in the next term. Both the course content and the homework will be distributed/returned as IPython notebooks.
I remember that about half a year ago, I had stumbled across a tool designed to hand-in homework as IPython notebook. In my recollection, it had some really nice features such as
tracking of returned homework tasks per student
integrated grading system
auto-testing for errors / code compliance
unit-testing of code segments
auto-grading features based on various metrics (e.g. speed of implementation)
Unfortunately, it seem I never saved the link - anyone seen this or any similar tool?
Writing this question actually made me think about the right buzz-words for my web search - et voila "notebook grading system" gives https://github.com/jupyter/nbgrader right at the top (quite in contrast to "ipython notebook homework tool")!
Sorry for the noise...

Publishing a .m matlab file to pdf: display latex is blurred / poor quality

I'm using the command publish('myFile.m', 'pdf') within the Matlab gui. The resulting file is crisp and perfect except for any of the LaTex within it which is blurred almost to the point of not being readable. Where do you think the source of this issue is? Are there any workarounds?
Context: I'm using Matlab 2014a on a macbook pro retina. Problem persists for all other generation: issue is with the .png
Note: The whole GUI was completely blurred on install. I have since updated the version of java being used by Matlab using this solution:
cd /Applications/MATLAB_R2013b.app/sys/java/jre/maci64
mv jre jre.orig
ln -s /Library/Java/JavaVirtualMachines/jdk{jdk.version}.jdk/Contents/Home/jre
Linked unanswered question
Answer from Matlab Support
Hello James,
I am writing in reference to your Technical Support Case #01107596
regarding 'LaTex rendering in very low quality when publishing'.
I apologize for the inconvenience you experience. Unfortunately what
you observe is a bug in the way that "publish" renders LaTeX equations
when publishing to .pdf. At the moment there is no direct work-around
for it.
The best indirect work-around is to publish to LaTeX instead of .pdf
and then compile the resulting TeX file using a LaTeX compiler. I
appreciate that this work-flow is sub-optimal. The relevant
development team is already notified about it.
I hope this e-mail clarifies the issue you experience. Once again I am
really sorry for this inconvenience. I will now close this service
request as having a bug report submitted but I will reopen it if you
require further clarifications. Do not hesitate to contact us again if
you have a new query regarding MATLAB's functionality.
Please preserve the Reference ID below in further correspondence on
this query. This allows our systems to automatically associate your
reply to the appropriate Case.
If you have a new technical support question, please submit a new
request here:
http://www.mathworks.com/support/servicerequests/create.html

What are the most important features of an IDE for Perl development? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
As some of you might know I am the lead developer of Padre, The Perl IDE. In the first year of its development, Padre became an acceptable text editor with some extra features for Perl development.
I'd like to ask the Stack Overflow community for some help in driving the project further to turn it into an exceptional IDE for Perl development. So I'd be glad to read what do you think are the most important features of an IDE that are still missing from Padre?.
Especially I'd be interested in people who currently use Eclipse+EPIC, Komodo, Visual Studio, or any of the text editors for programmers.
The most important feature of an IDE for Perl development (including Padre) is:
an interactive debugger that actually works. E.g. remembering breakpoints, ability to drill down into complicated data structures, and copy (to clipboard) should work on watched variables - including a menu command Copy Special that allows putting it in various formats; say CSV, XML or tab-separated.
The two most invaluable features I find:
line-by-line debugging, watchpoints, breakpoints, and so on, so I can properly debug my code.
code completion so I don't have to go looking up docs (even online).
OK, here's my third answer, although I hate to say it.
The competition is pretty easy to install. Padre isn't. I tried to update to the latest release today and, once again, got failing tests.
I am a heavy Perl EPIC user and my biggest gripe is not being able to jump to a function that is clearly defined in the current context (usually by pressing F3). It is pretty
much hit or miss at this point.
Stability. People turn away quickly if their editor crashes and they lose their work.
I work with Komodo. I also use other editors but I come back to Komodo most of the time. A good IDE shoud have:
A good Debugger. Breakpoints, watch lists, everything you need.
Remote debugging. Threads debugging capability.
Syntax highlighting including weighted fonts as well ( I was pretty disappointed by Oxygen, for example, an XSLT IDE, where I can not use bold fonts to emphasize reserved terms)
Syntax completion.
Project management tools, preferable extendable by plugins.
Good VCS integration. This is something that I absolutely love in Eclipse: You instantly see what files have local changes and which aren't added to the repository yet. And you get to browse the different versions and have a nice diff view just one mouse click away.
A project manager. It's essential for me to be able to define the set of files and folders that comprise a particular codebase. Sessions are useful but not a replacement.
Testing integration.
Perl has great unit testing tools. When I run my test suite and get a failure, I want to see the code for the test that failed.
Having a good way to jump through test results and see the code for the failed test along with the expected and actual results would be a great boon.
The first thing I look for is some kind of overview of the currently active file. I'd like to see methods/functions and, if possible, the used modules and especially any use base statements.
You solved that pretty well in Padre.
Visual-Studio style refactoring for variables and function names and extraction of functions.
Visual studio searches your whole module for all references and allows you to see all changed lines in case you do not want to change one instance (for whatever reason)...
The question seems more debatable than answerable.
Risking myself of being accused copyright abuser, I will post contents that I remember from the book "Interactive programming environments" by David R. Barstow, Howard E. Shrobe, Erik Sandewall.
It will not be exactly the same, as I have read the book many years ago and I've jotted down it in another language.
PRINCIPLES OF A GOOD INTERACTIVE PROGRAMMING ENVIRONMENT
1: Know the user
+ Know the previous knowledge and practice of the user
2: Minimize the memorization
+ Selection and not characters entering
+ Names and not numbers
+ Predictable behavior: the user should have a previous impression of what the system will do
+ Possible access and changing of the parameters of the system
3: Optimization of operations
+ Fast execution of common operations
+ Inertia of visualization: the screen should change the less possible
+ Memorization of system operation in user's memory
+ The meaning of specific operations should have a simple relationship with the state of the system
+ The system must be prepared to accept more than 10 followed commands per second, so that it can operate on the user's muscular memory
+ The system should be prepared to organize the parameters of a command
4: Engineer for the errors
+ Provide good error messages.
+ Engineer it to remove away the common errors.
+ The system should provide reversible actions.
+ Redundancy: the operations should have more than one way of being done.
+ Integrity of data structures.
The ability to configure and run external (command-line) tools. Plug-ins are great but end-users won't necessarily want to author one just to integrate with an external tool. Allowing users to configure their own tools provides a great deal of extensibility with minimal barriers to entry.
My editor of choice is UltraEdit. It's not an IDE, but through its support for user tools, I've been able to integrate IDE features such as lint, version control, debugging, and more.
This can be possibly achieved via use strict; but could be as well a valuable feature even if not use'd explicitly, namely:
the other day we spent about 10-20 minutes debugging the following behavior:
my %hash;
$hash->{'key1'} = value1;
# on reading in a different module
print $hash{'key1'}; # is, of course, empty, but was so easy to overlook in the code above
resume:
proper Perl type safety brought in by the IDE.
It might be already implemented in Padre, though, as it turned out not in Eclipse+EPIC
I use emacs. I would like a system that helps me refactor code, especially when I'm working on ugly 1999 code that uses the begin-at-the-beginning-go-to-the-end philosophy combined with duplicate-and-modify.
I looked at Eclipse, but I can't work with a system that requires me to create a project before I can make a one-character correction to a file.
I looked at Padre, but it's slow and crashes.
I looked at Kod which claims to be configured by CSS, but I can't find a man page that will tell me where to put the CSS.
Integration of a read-eval-print loop. As a heavy Emacs user, I very much appreciate Sepia. Very useful for trying things out before I commit them to code.
Ability to create and debug XS code.
The ability to use my own choice of editor (which it may have, as far as I know). That has a chance of winning over the vim/emacs people.
I don't know if Padre can do this, but the ability to split the screen is very important to me. As a VIM user, I constantly split my screen to look at another file while coding.
Line ending policies for files, by directory, and project-wide.
So, for a given project or directory, I'd like to make all line endings be LF only. While in another directory I may wish to have a mix of CRLF and LF files.
I work a lot on stuff that goes back and forth between Unix and Win32 environments.
The typical solution of automatically converting all files back and forth as one moves from platform to platform hasn't worked well for me.
When a file gets created in the wrong format by accident, it can be a real pain.

free MATLAB environment

I'm learning the MATLAB language and would like to have some kind of free environment to experiment with. The MATLAB environment provided by MathWorks is commercial. There appears to be a trial available, but I can't figure out how to get the trial license.
For the moment, all I need is a command-line and the "standard libraries".
Octave is mostly compatible with matlab: http://www.gnu.org/software/octave/
If you are just starting with MATLAB I would strongly suggest to go the Python path instead (unless there is some very specific reason why you must use MATLAB). The basics (like array / matrix operations) are very similar to MATLAB.
In my current area of work (neuroscience) there is a strong migration from MATLAB to Python. Many groups are making the switch because Python is free and generally more powerful.
The basic packages you will probably need to get started would be numpy (basic array numerics), scipy (more algorithms) and matplotlib (plotting). Since you want to work on the command line I suggest IPython as well.
As already mentioned in another answer there are also some Python distributions which include many packages, like PythonXY, the Enthought Python Distribution, or Anaconda.
There are many tutorials available on the web, search a little and pick one you like.
Look into these:
Scilab
Octave
Sage
Read this blog entry from Ryan Morlok for more info on open source Matlab alternatives.
I'm a big fan of R, but it's not a substitute for Matlab... it's an alternative. There's a big difference!
I was recently enamoured of Python XY. It's not exactly like Matlab but it has many of the same functions and copies the look and feel. I would personally use it if I didn't want to buy a Matlab license though - not if I wanted to practice with a Matlab stand-in.
www.pythonxy.com
Other users have given you the examples that I would have suggested - Octave and Scilab. Of the two, I would say that Scilab is more powerful BUT Octave tries really hard to be source compatible with standard MATLAB and Scilab does not.
So, if your aim is to experiment with a MATLAB like language and learn skills that you will eventually be able to transfer over to MATLAB then I suggest that you stick with Octave.
If you're interested in trying things out in MATLAB directly, there was a recent blog entry on The MathWorks website regarding free trial downloads of MATLAB and its various toolboxes. If you haven't tried contacting them already, the blog links to this page where you can request product trials or, if you already have a licensed product, you can sign in and downloads trials of toolboxes.