I've just opened a project on CodePlex - http://algonet.codeplex.com/ !!!
This project will implement various algorithms related to artificial intelligence, numerical analysis, NLP, object recognition and quantitative finance. It will initially target C#, and eventually F#.
First exercise - port Java AIMA 3 to C# from http://code.google.com/p/aima-java
so far I've ported the utils - helpers, data structures and basic linear algebra classes
- Matrix class - Implemented ICloneable, ISerializable.GetObjectData (may move to DataContractAttribute instead)
- cleaned up code via resharper
- MixedRadixNumber class – unfortunately, there is no .NET equivalent for java Number ValueType base class – will come back to this
- Get & Put operations – replaced with property accessors, indexors
- Made whatever I could linq enabled
- Cleaned up comment overloads
- For comparison of floating point number used an epsilon 0.00001
classes that were left out from aima.core.util.datastructure - because of existing equivelent classes in .NET BCL:
- FifoQueue - Queue<T>
- LifoQueue - Stack<T>
- Pair - Tuple<T1,T2>
- Point2D - Point2D
- Triplet - Tuple<T1,T2,T3>
- I left PriorityQueue in for the moment - I may replace with OrderedBag / OrderedSet classes in PowerCollections or Parallel Extensions extras http://code.msdn.microsoft.com/Samples-for-Parallel-b4b76364
classes that were left out from aima.core.util - because of existing equivalent classes in .NET BCL:
- ArrayIterator – IEnumerable<T>
- CancelableThread – Thread (may move to Task anyway)
- Converter – LINQ ToDictionary, ToList operators
- SetOps – LINQ operators
All fun & games !!!