Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Vector and Matrix Library User's Guide
    • Basic Concepts
    • Vectors
    • Matrices
    • Structured Matrix Types
    • Matrix Decompositions
    • Sparse Vectors and Matrices
    • Complex Linear Algebra
    • Single-Precision Linear Algebra
    • Distributed and GPU Computing
  • Single-Precision Linear Algebra

Single-Precision Linear Algebra

Extreme Optimization Numerical Libraries for .NET Professional

All the examples discussed in this guide so far use double precision floating-point numbers to store vector and matrix elements. In some situations, it may be desirable to use single-precision numbers. Matrices that use single-precision numbers only use half the memory of matrices with double-precision numbers, and so require only half the memory bandwidth. The drawback is the lower precision, which makes numerical problems much more common.

>
Working with Single Precision Vectors and Matrices

All vector and matrix types are generic over the element type, This means they work with single-precision floating point numbers as well. However, by default single-precision operations will use the generic implementation, which is very slow. To use specialized implementations, add a reference to the Extreme.Numerics.SinglePrecision.dll assembly. This will cause the specialized implementation to be picked up automatically.

Conversions to and from Double Precision

All single-precision vector and matrix types can be converted to double-precision. Although it would make sense from a purely logical standpoint to allow these conversions to be implicit, the large cost in terms of time and memory makes it more advisable that conversions are done explicitly.

Conversions from double precision vectors and matrices to single-precision vectors and matrices can cause a loss of information and must also be done explicitly.

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.