[swift-evolution] Epic: Typesafe calculations
scanon at apple.com
Wed Jan 13 13:16:02 CST 2016
… in exact arithmetic, not in floating-point, which is what people tend to actually use for matrices. For that matter, the entire notion of “invertible” as a binary attribute is problematic when dealing with approximate arithmetic; a matrix may be formally invertible but so ill-conditioned that the result is effectively meaningless.
Not really trying to shoot you down, just observing that this is an extremely subtle example with lots of hidden sharp edges.
> On Jan 13, 2016, at 1:19 PM, Matt Whiteside via swift-evolution <swift-evolution at swift.org> wrote:
> That was my thinking when I wrote it, but I’m not sure exactly what the limits would be. For example, the product of 2 invertible matrices is an invertible matrix, giving you another way to construct one.
>> On Jan 13, 2016, at 09:56, Thorsten Seitz <tseitz42 at icloud.com <mailto:tseitz42 at icloud.com>> wrote:
>> Am 12.01.2016 um 23:49 schrieb Matt Whiteside via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>>:
>>> struct InvertibleMatrix: SquareMatrix where determinant() != 0
>>> // ^~~ 'restriction’ clause, i.e., not inheritance;
>>> // determinant() is executed at compile time,
>>> // since `entries` is a constexpr
>> Wouldn't that only work for literal matrices?
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution