Data Structure Design¶
The data structures in Bermuda were created with the following design objectives in mind:
Unity/Consistency: The primary user-facing class is
bermuda.Triangle. Any amount of triangle data, from a small paid loss triangle for a single book of business to a massive, heterogeneous collection of industry loss data is representable as a singleTriangleobject. There are no artificial distinctions between a single triangle and a collection of triangles, or restrictions on what sorts of triangle data can be concatenated. Even predictive distributions of unobserved quantities can be handled by this class.Immutability: Objects in
bermuda.triangleare immutable, meaning that there are no methods or functions that change the value of an object in-place. Methods on triangles such asfilter,clip, andselectreturn modified copies of the original triangle. This makes reasoning about the behavior of triangle objects significantly easier.Ergonomics: Common manipulations on triangles are provided, and the internals of triangles are designed to make more common manipulations and transformations relatively straightforward.
Performance: The
bermuda.Triangleclass is designed to scale reasonably well, and to not be a performance or memory bottleneck in the modeling pipeline.
                        Bermuda