New Member to Code Cogs
New Member to Code Cogs
<p>Hi, all.</p>
<p>I am new to Code Cogs. It looks like a very slick site (but the forums appear to be pretty quiet). I am into sharing source code, but am presently doing it off my own site; I am not sure if I will take the time to write an article, format the code a certain way, etc. and then submit it. If anybody has a use for some numerical mathematics routines, here is a link to the site: http://www.akiti.ca/Mathfxns.html</p>
<p>All the programs listed on this page were programs that I used in my undergraduate engineering days (as well as a few more that I have not posted yet). Most of them were originally written in FORTRAN, which I re-wrote in C, then in Javascript for posting on that site. (For anybody who dislikes FORTRAN, the existing pages are a convenient source of code--definitely more C-like than raw FORTRAN). I am now in the process of cleaning up the source code (writing in proper C++) for posting later. A sample can be seen at the bottom of the page (the "Dynamic Arrays in C++" intro). Once I get my dynamic memory management technique to a good state, I am planning to clean up the code for all the programs and post the source code. If anybody needs code for a particular routine, make a post in this forum; I may have the code already written. Regards, David</p>
5 May 06, 3:28PM
Hi,
Thats a great little collection of code you have, it would be great if you could one day submit this onto CodeCogs. I'd be very happy to help with formatting etc. We're updating the submission system to include a WYSIWIG style editor, with the aim of making it even easier to submit code and format the documentation for the code. Should be live in a month.
Ironically my reasons for getting involved in CodeCogs are close to your own web-work. When I finished my PhD, I wanted somewhere to release my own collection of code; with the aim of trying to reduce the amount of code others would spend having to rewrite / reinvent.
Given your existing work; your thoughts and comments on CodeCogs, particularly the sort of code you would like to see on the system, and how it should be structured, would be invaluable input.
We have also been quietly looking for someone with experience with BLAS; who could help port this into CodeCogs. The objective is to simply break BLAS into atomic pieces, so developers can select out those pieces of BLAS they need without installing it all. This in turn would make it easier to integrate BLAS into other components on the system.
As for quietness of the forum.. Yes you're right. This is a new site (live about 1yr); we've had to work hard to get funding to continue this project and to build the repository - which unfortunately means we've had less time to focus on News letters and building interest in the forum. Hopefully though users such as yourself will gradually help to raise interest; with increasingly more people adding links to CodeCogs from their own sites.
Incidentally, I suggest you post your site into the 'Post your Website' category within the forum (at the bottom).
Cheers
Will.
5 May 06, 5:34PM
[quote:d5b8eb6aec="will"]
We have also been quietly looking for someone with experience with BLAS; who could help port this into CodeCogs. The objective is to simply break BLAS into atomic pieces, so developers can select out those pieces of BLAS they need without installing it all. This in turn would make it easier to integrate BLAS into other components on the system.
[/quote:d5b8eb6aec]
In the course of translating the routines you see posted on the website, I re-wrote MANY of the BLAS routines. However, I didn't just transliterate them; most of them were extensively edited. In fact, several of them were reduced to a single line, which I then wrote straight into the main program, rather than make a sub-routine call.
I also eliminated many IF statements and variables. For example, many of the BLAS routines provide the option of stepping through an array in different increments. The programs I wrote never used any increment other than 1, so I just removed such references.
Are you planning a straight transliteration of the BLAS routines (i.e. - with ALL variables, IF statements, etc.)?
Otherwise, let me know exactly what BLAS routines you are most anxious to have; I could then speed up the posting of code, and you could see if they are what you are seeking.
Another thought: the Boost libraries and NIST offer classes that are supposed to be very cutting edge; however, I feel that they hide the algorithms. Have you looked into these libraries? If your goal is to post translated BLAS routines, the present course is fine. If your goal is to present some more advanced code, mention should be made of these two libraries.
[quote:d5b8eb6aec="will"]
Incidentally, I suggest you post your site into the 'Post your Website' category within the forum (at the bottom).
[/quote:d5b8eb6aec]
Okay. I'll do that.
Regards,
David
5 May 06, 7:32PM
I like the sound of the optimizing that you have been performing on BLAS. I'm amazed, since I actually thought it was already very optimal.
We have actually been looking at the Boost / BLAS version. I wasn't aware that this was substantially different from other BLAS implementation, except being in C++.
What I was planning to do was strip from the Boost/BLAS stuff was the optimization for specific platforms. My original intention was not to create the fastest possible BLAS version (you custom install BLAS for your chipset for that); but to create something that has all the same functionality (names, arguments, etc), but allows people to very quickly incorporate it into their project - in much the same was as we hope the CodeCogs code is (i.e. atomic). Size and ease of use being more important than Speed.
Our original thoughts were to try to clean up the Blas library automatically; so when an update to Blas is issued, we can incorporate that quickly onto the system. For this we need to look carefully at how the code is written (looking for #ifdef etc); and select the platform implementation that is best across all platforms - they strip out the rest using something like Perl. I don't know how easy this would be to achieve. Any thought?
In terms of which functions. Anything and everything. The trouble (or benefit depending on how you look at it), is that vast range of different users use CodeCogs, from pure maths, to physics to engineering. I couldn't possible second guess what they all might want one day. However we never aim to run before we can walk, so we typically start uploading the smaller, simpler components (esp those that other functions depend on) first, and work out to the larger more complex stuff. On the whole though, we all work on the areas that most interest us and fits with work were doing else where.
Thinking of other vector libraries. Another great system is the Blitz library, which is probably faster than BLAS. However its massively dependent on templates, is less used and we also felt was a little harder to break into individual parts and post onto a system such as CodeCogs. Though it still possible and something we're considering.
Cheers
Will.
Login