Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / FloatUtil.cs / 1305600 / 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
- DrawingServices.cs
- StringPropertyBuilder.cs
- ServiceNotStartedException.cs
- TextRangeSerialization.cs
- DetailsViewInsertedEventArgs.cs
- CompilerScopeManager.cs
- DbConnectionPoolCounters.cs
- ClientBuildManagerCallback.cs
- StateItem.cs
- SqlWorkflowInstanceStoreLock.cs
- Clock.cs
- DataListItemEventArgs.cs
- FormViewUpdateEventArgs.cs
- Win32Interop.cs
- Win32SafeHandles.cs
- MimeWriter.cs
- XpsManager.cs
- ImageField.cs
- RestHandlerFactory.cs
- UnicastIPAddressInformationCollection.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- RuleSettings.cs
- ProcessHost.cs
- MultiDataTrigger.cs
- MethodRental.cs
- XmlValidatingReaderImpl.cs
- RefExpr.cs
- InheritanceUI.cs
- ResourceReferenceExpressionConverter.cs
- TreeNodeStyleCollection.cs
- ToolStripControlHost.cs
- AndMessageFilterTable.cs
- TrustLevelCollection.cs
- TypeConvertions.cs
- StreamUpgradeInitiator.cs
- IISUnsafeMethods.cs
- EdmFunction.cs
- WindowsGraphicsCacheManager.cs
- QilValidationVisitor.cs
- Visual.cs
- PointIndependentAnimationStorage.cs
- ReferenceEqualityComparer.cs
- TargetControlTypeCache.cs
- ZipFileInfo.cs
- AdornerHitTestResult.cs
- AutoGeneratedField.cs
- SmtpTransport.cs
- SharedUtils.cs
- HtmlEncodedRawTextWriter.cs
- ColumnPropertiesGroup.cs
- MaskInputRejectedEventArgs.cs
- XmlILIndex.cs
- RadioButtonAutomationPeer.cs
- XmlDownloadManager.cs
- ReaderOutput.cs
- SingleConverter.cs
- TextCharacters.cs
- UserInitiatedNavigationPermission.cs
- PingReply.cs
- AttributeExtensions.cs
- MasterPage.cs
- VisualCollection.cs
- EntityTransaction.cs
- SqlConnectionPoolGroupProviderInfo.cs
- FocusManager.cs
- documentation.cs
- ToolStripGripRenderEventArgs.cs
- PageContentAsyncResult.cs
- JsonFormatMapping.cs
- XmlElementList.cs
- Pts.cs
- WorkflowApplicationAbortedException.cs
- OrderPreservingMergeHelper.cs
- HeaderCollection.cs
- codemethodreferenceexpression.cs
- MessagingActivityHelper.cs
- RegistrationServices.cs
- NotCondition.cs
- ClientUIRequest.cs
- XmlCountingReader.cs
- Blend.cs
- DetailsViewDeleteEventArgs.cs
- HtmlLink.cs
- SystemEvents.cs
- DragCompletedEventArgs.cs
- Vector3DKeyFrameCollection.cs
- DataControlButton.cs
- StructuredTypeInfo.cs
- TextSelectionHighlightLayer.cs
- CharEntityEncoderFallback.cs
- PackWebResponse.cs
- ImageButton.cs
- XmlAttributeProperties.cs
- EventRouteFactory.cs
- XmlWriter.cs
- MetadataWorkspace.cs
- XsdDataContractExporter.cs
- Size3DConverter.cs
- AdRotator.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs