All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
ILazySegtreeOperator<T, F>
implementsISegtreeOperator<T>
- Create
Segtree<T>
from Span
- Add PriorityQueue.TryPeek(out T)
- Add PriorityQueue.DequeueEnqueue(T)
- Fix EnqueueDequeue
- Fix doc of FloorSum
- Add
Parse
/TryParse
toModInt
- Add MfGraph.Count
- Rename generic parameter TValue to T
- Rename
AtCoder.Internal.BigMul
intoAtCoder.Internal.Mul128
- Separate
MathLib
andInternalMath
implementations in separate classes
- Add
IModInt<T>.Value
andIModInt<T>.Mod
- Move
IStaticMod
to IModInterface.cs
- Remove DebugView from expanded code
- Add
Deque<T>.Grow(int capacity)
AtCoder.Internal.Barrett
for2^31
< m <2^32
- Fix empty
Deque<T>.GetEnumerator()
- Add IModInt interface
- AtCoderAnalyzer: Create operator as readonly struct
- Update DebugView
- Rename IMinMaxValue to IMinMaxValueOperator
- Add SimpleList.RemoveLastSize
- Optimize PowMod"
- Change accessibility of some Internal* class members public
- Fix LCPArray → LcpArray
- Change accessibility of some members to
[EditorBrowsable(Never)] public
- Multiply 128Bit in barrett reduction
- AtCoderAnalyzer: Create operator for static abstract
- Rename DynamicModID to DynamicModIntId
- Rename assembly from AtCoderLibrary to ac-library-csharp
- Rename some methods/classes to PascalCase
- Make SourceExpander.Embedder switchable
- Disable some Contract.Assert
- Optimize PrimitiveRoot
- Fix capacity of Deque
- Add DebuggerDisplay
- Generic Math
- StaticModInt, DynamicModInt
- add Zero and One to StaticModInt, DynamicModInt
- implements IFormattable
- implicit cast to ulong
- AtCoderAnalyzer_UseMethodImplNumeric
- PriorityQueue.DequeueEnqueue
- Bug fix: new Deque(capacity)
- Bug fix: -ModInt(0) should be 0
- Add McfGraph.Slope2
- Analyzer: Optimize CodeFix
- Allow using
IComparable<T>
asBinarySearch
argument
- Optimize BinarySearch
- SourceExpander 5.0.0
- immaterial changes
- Add AggressiveInlining
- Fix analyzer AggressiveInlining
- Update libraries
- SourceExpander 4.1.1
- Update libraries
- Move ISegtreeOperator and ILazySegtreeOperator
- Add PriorityQueue.EnqueueDequeue
- Breaking Move operator interfaces to AtCoder.Operators namespace
- Breaking Separate ISubtractOperator from IAdditionOperator
- Update CreateOperatorCodeFixProvider
- Raname PriorityQueue<TKey, TValue> to PriorityQueueDictionary<TKey, TValue>
- Optimize PriorityQueue
- Optimize MaxFlow
- Breaking Rename some classes to camel case
- Breaking Rename namespace of STL classes to AtCoder.Stl to AtCoder
- Breaking Rename namespace of binary search classes to AtCoder.Extension
- Fix typo in xml doc
- Split IMinMaxValue
- Breaking Remove IEnumerable implementation from PriorityQueue
- Remove EditorBrowsableState.Never from Contract.
- Hide Deque.Add
- Breaking Rename namespace of STL classes to AtCoder.Stl
- Breaking Raname PriorityQueue.Add to PriorityQueue.Enqueue (thx @fairy-lettuce) #53
- Add AggressiveInlining
- Add AggressiveInlining
- Enumerate CSR edge
- Add AsMemory() to SimpleList
- Add debug method to PriorityQueue #50
- Add SuffixArray that takes Span parameter #48
- AtCoderAnalyzer can run parallel
- Improve FloorSum #42
- Optimize FenwickTree #47
- Optimize Convolution #47
- Optimize SuffixArray #47
- Rename AtCoder.Internal.SCCGraph to AtCoder.Internal.InternalSCCGraph
- Deque.operator[int] returns reference
- PriorityQueue<TKey, TValue> is obsolete in .NET 6 or newer
- Avoid using List
- Improve SimpleList
- Rename AtCoder.Internal.BitOperations
- Support .NET Standard 2.1 and C# 7.3
- Update CreateOperatorCodeFixProvider
- Use Span.Fill
- CeilPow2 AggressiveInlining
- Optimize PriorityQueue<TKey, TValue>
- Add PriorityQueue.TryDequeue
- Add New StlFunction.NextPermutation method like std::next_permutation
- Avoid Recursive call in PriorityQueue
- McfGraph use PriorityQueueOp
- Rename StlFunction.NextPermutation to StlFunction.Permutations
- Add DebugView to SimpleList
- FenwickTree, Segtree and LazySegtree display value in debug view.
- Parameter with Modifiers in CreateOperatorCodeFixProvider
Rename ILazySegtreeOperator.Composition args
- Create void method with empty block in CreateOperatorCodeFixProvider
- Add SimpleList.Sort(), SimpleList.Reverse()
- Add ValueTuple name to CRT
- Avoid recursive in scc
- Avoid recursive in MFGraph
- Replace DebugUtil.Assert to Contract.Assert
- Add SimpleList
- Optimize MaxFlow
- Add IShiftOperator interface
- Split operator interfaces
- Regard System.Collections.Generic.IComparer as operator type
- GenerateDocumentationFile
- Split files
- Use EditorBrowsable(EditorBrowsableState.Never) instead of private or internal
- Use Generic Comparer in BinarySearch, PriorityQueue
- Raise AC0008 on Method
- Follow ac-library v1.3
- [Bug fix]Create all members in CreateOperatorCodeFixProvider
- BinarySearch targets only IComparable
- Remove struct constraint from operator
- SourceLink
- fix no AC0008 on OmittedTypeArgument
- Minify embedded source code
- Add Analyzer for operator type