I've just opened a project on CodePlex - !!!
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
AIMA3
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
- LifoQueue - Stack
- 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
- CancelableThread – Thread (may move to Task anyway)
- Converter – LINQ ToDictionary, ToList operators
- SetOps – LINQ operators
All fun & games!!!
