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
- MaterializeFromAtom.cs
- NativeRightsManagementAPIsStructures.cs
- ValueTypeFieldReference.cs
- BinaryMethodMessage.cs
- DaylightTime.cs
- EntityDataSourceWizardForm.cs
- ObjectViewEntityCollectionData.cs
- KnownAssembliesSet.cs
- InstanceLockedException.cs
- ValueSerializer.cs
- Relationship.cs
- XsltFunctions.cs
- ByteArrayHelperWithString.cs
- BaseValidator.cs
- StateItem.cs
- ThreadPoolTaskScheduler.cs
- RightsDocument.cs
- XmlSchemaSimpleType.cs
- ExternalException.cs
- AstTree.cs
- WindowsRichEditRange.cs
- GeometryGroup.cs
- EntityCommandExecutionException.cs
- Utils.cs
- InstanceNotReadyException.cs
- RightsManagementEncryptedStream.cs
- KeyedCollection.cs
- WsatAdminException.cs
- Regex.cs
- ContentFileHelper.cs
- SerializationStore.cs
- DynamicILGenerator.cs
- HandlerMappingMemo.cs
- XmlRootAttribute.cs
- SimpleExpression.cs
- TdsParserStaticMethods.cs
- FixedHyperLink.cs
- HtmlInputImage.cs
- TreeIterators.cs
- DataControlFieldCollection.cs
- AppDomainAttributes.cs
- EntityDataSourceChangedEventArgs.cs
- XmlSerializerOperationBehavior.cs
- KeyboardDevice.cs
- DropSource.cs
- WebPartUtil.cs
- ToolStripEditorManager.cs
- XamlPointCollectionSerializer.cs
- TcpTransportBindingElement.cs
- Int64Storage.cs
- XmlBoundElement.cs
- HtmlContainerControl.cs
- DataGridViewRowCancelEventArgs.cs
- OdbcException.cs
- DataKey.cs
- LinkDescriptor.cs
- IItemContainerGenerator.cs
- ObjectParameter.cs
- MessageTraceRecord.cs
- ObjectCacheSettings.cs
- Bezier.cs
- CompilerHelpers.cs
- DocumentApplicationJournalEntry.cs
- RoleService.cs
- NativeMethods.cs
- HtmlInputButton.cs
- Model3DGroup.cs
- coordinatorscratchpad.cs
- TextSelectionHighlightLayer.cs
- DataColumnCollection.cs
- dataprotectionpermission.cs
- WindowsFormsHelpers.cs
- Point3DValueSerializer.cs
- GPStream.cs
- FlowDocumentPageViewerAutomationPeer.cs
- XmlSerializationGeneratedCode.cs
- HideDisabledControlAdapter.cs
- EntityDataSourceSelectedEventArgs.cs
- ResourceManager.cs
- EntityViewGenerationAttribute.cs
- CollectionView.cs
- XmlBinaryReaderSession.cs
- WsatTransactionFormatter.cs
- ExecutionEngineException.cs
- ReadOnlyNameValueCollection.cs
- Process.cs
- ObjectNotFoundException.cs
- ItemsPanelTemplate.cs
- PlainXmlSerializer.cs
- SafeMILHandle.cs
- CanonicalizationDriver.cs
- FontCacheUtil.cs
- PerformanceCounterPermission.cs
- PluralizationService.cs
- ObjectQueryProvider.cs
- DataRecordObjectView.cs
- PasswordPropertyTextAttribute.cs
- ObjectViewFactory.cs
- DynamicRendererThreadManager.cs
- PrintPreviewControl.cs