Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Shared / MS / Internal / FloatUtil.cs / 1 / FloatUtil.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: FloatUtil.cs // // Description: This file contains the implementation of FloatUtil, which // provides "fuzzy" comparison functionality for floats and // float-based classes and structs in our code. // // History: // 04/28/2003 : [....] - Created this header // 05/20/2003 : [....] - Move to Shared. // //--------------------------------------------------------------------------- using System; namespace MS.Internal { internal static class FloatUtil { internal static float FLT_EPSILON = 1.192092896e-07F; internal static float FLT_MAX_PRECISION = 0xffffff; internal static float INVERSE_FLT_MAX_PRECISION = 1.0F / FLT_MAX_PRECISION; ////// AreClose /// public static bool AreClose(float a, float b) { if(a == b) return true; // This computes (|a-b| / (|a| + |b| + 10.0f)) < FLT_EPSILON float eps = ((float)Math.Abs(a) + (float)Math.Abs(b) + 10.0f) * FLT_EPSILON; float delta = a - b; return(-eps < delta) && (eps > delta); } ////// IsOne /// public static bool IsOne(float a) { return (float)Math.Abs(a-1.0f) < 10.0f * FLT_EPSILON; } ////// IsZero /// public static bool IsZero(float a) { return (float)Math.Abs(a) < 10.0f * FLT_EPSILON; } ////// IsCloseToDivideByZero /// public static bool IsCloseToDivideByZero(float numerator, float denominator) { // When updating this, please also update code in Arithmetic.h return Math.Abs(denominator) <= Math.Abs(numerator) * INVERSE_FLT_MAX_PRECISION; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FormsAuthenticationModule.cs
- DetailsViewCommandEventArgs.cs
- CaseStatementSlot.cs
- _NetworkingPerfCounters.cs
- GeometryDrawing.cs
- SqlDependencyListener.cs
- TextContainer.cs
- GetCardDetailsRequest.cs
- TrackingCondition.cs
- MetadataUtil.cs
- URLAttribute.cs
- MsmqProcessProtocolHandler.cs
- IntersectQueryOperator.cs
- IMembershipProvider.cs
- CharacterHit.cs
- TokenBasedSetEnumerator.cs
- ListViewTableRow.cs
- ImageFormat.cs
- XsltSettings.cs
- WebPartPersonalization.cs
- Attribute.cs
- ResXBuildProvider.cs
- UInt32.cs
- LogStore.cs
- WebServiceParameterData.cs
- SourceFileBuildProvider.cs
- invalidudtexception.cs
- EventLogQuery.cs
- PreProcessor.cs
- TCPListener.cs
- RequestQueue.cs
- ControlCachePolicy.cs
- XPathDocumentBuilder.cs
- SearchExpression.cs
- XmlComment.cs
- IntegrationExceptionEventArgs.cs
- DurationConverter.cs
- WinOEToolBoxItem.cs
- XamlDesignerSerializationManager.cs
- Int32Converter.cs
- XmlTextEncoder.cs
- Repeater.cs
- StorageSetMapping.cs
- AssignDesigner.xaml.cs
- DataServiceResponse.cs
- NumericExpr.cs
- ViewUtilities.cs
- RemotingException.cs
- FrugalMap.cs
- GB18030Encoding.cs
- RemoteCryptoRsaServiceProvider.cs
- StrokeNodeOperations.cs
- SqlTriggerContext.cs
- PinnedBufferMemoryStream.cs
- DataGrid.cs
- TemplatingOptionsDialog.cs
- GridViewDeletedEventArgs.cs
- DropDownList.cs
- TraceUtils.cs
- XmlRootAttribute.cs
- XmlHierarchicalDataSourceView.cs
- RotateTransform.cs
- GeometryDrawing.cs
- NamespaceMapping.cs
- IdentityNotMappedException.cs
- CheckPair.cs
- Scripts.cs
- ExtensibleClassFactory.cs
- IProvider.cs
- BaseTypeViewSchema.cs
- UnsafeNativeMethods.cs
- TypedTableHandler.cs
- EventSetterHandlerConverter.cs
- DataControlFieldHeaderCell.cs
- DoubleKeyFrameCollection.cs
- CustomAttribute.cs
- HttpCookieCollection.cs
- BuildProviderInstallComponent.cs
- WizardStepBase.cs
- WasHttpModulesInstallComponent.cs
- SerializationTrace.cs
- SecurityPermission.cs
- RuntimeArgumentHandle.cs
- TwoPhaseCommit.cs
- OledbConnectionStringbuilder.cs
- DataGridViewColumnCollection.cs
- ModelPropertyImpl.cs
- RectangleHotSpot.cs
- VerificationException.cs
- Calendar.cs
- SqlDataSourceStatusEventArgs.cs
- Simplifier.cs
- PageBuildProvider.cs
- HexParser.cs
- FontStyleConverter.cs
- SQLInt64Storage.cs
- BaseTreeIterator.cs
- StylusOverProperty.cs
- ValidationErrorCollection.cs
- XmlNamespaceManager.cs