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
- SqlCommandBuilder.cs
- OwnerDrawPropertyBag.cs
- Rectangle.cs
- MatrixConverter.cs
- WindowAutomationPeer.cs
- BackStopAuthenticationModule.cs
- CryptoHandle.cs
- IUnknownConstantAttribute.cs
- Facet.cs
- SoapElementAttribute.cs
- QueueProcessor.cs
- TemplateBuilder.cs
- ReadOnlyPropertyMetadata.cs
- DynamicPhysicalDiscoSearcher.cs
- CatalogZoneDesigner.cs
- TaskFactory.cs
- Options.cs
- InputLanguageProfileNotifySink.cs
- InstanceKeyView.cs
- TranslateTransform3D.cs
- ChineseLunisolarCalendar.cs
- shaperfactoryquerycacheentry.cs
- SqlNamer.cs
- OrderedDictionary.cs
- XmlSchema.cs
- NumberFormatInfo.cs
- CallbackValidator.cs
- XmlSchemaObjectCollection.cs
- ScriptingScriptResourceHandlerSection.cs
- TokenBasedSetEnumerator.cs
- GetImportedCardRequest.cs
- ComplexTypeEmitter.cs
- LineBreak.cs
- WindowsListViewItem.cs
- SchemaNotation.cs
- RowsCopiedEventArgs.cs
- SamlAdvice.cs
- ToolStripDropDownClosedEventArgs.cs
- XmlCharCheckingWriter.cs
- TextElementEnumerator.cs
- DataView.cs
- SatelliteContractVersionAttribute.cs
- Matrix.cs
- ListViewItem.cs
- WebBrowser.cs
- DrawListViewSubItemEventArgs.cs
- RSAOAEPKeyExchangeDeformatter.cs
- IODescriptionAttribute.cs
- GridViewRowPresenterBase.cs
- BinaryCommonClasses.cs
- XmlCountingReader.cs
- XmlSignificantWhitespace.cs
- MailAddress.cs
- DictationGrammar.cs
- XamlSerializer.cs
- URLString.cs
- ExpressionEditorAttribute.cs
- SafeSerializationManager.cs
- ListBox.cs
- CategoryAttribute.cs
- FormsAuthenticationTicket.cs
- ErrorWrapper.cs
- FormClosedEvent.cs
- RemotingConfiguration.cs
- RetrieveVirtualItemEventArgs.cs
- AutomationAttributeInfo.cs
- IconConverter.cs
- RadioButtonStandardAdapter.cs
- ProfilePropertyMetadata.cs
- EntityDataSourceChangingEventArgs.cs
- mactripleDES.cs
- DataGridViewComboBoxColumn.cs
- CodeDomDecompiler.cs
- EntityConnectionStringBuilderItem.cs
- NavigationPropertyAccessor.cs
- FontUnitConverter.cs
- SchemaAttDef.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- x509utils.cs
- ResolvePPIDRequest.cs
- ToolStripItemRenderEventArgs.cs
- StylusPlugin.cs
- GPPOINT.cs
- DataSourceExpressionCollection.cs
- NetworkInformationException.cs
- ClaimTypeRequirement.cs
- ObjectSpanRewriter.cs
- Compensate.cs
- InternalBufferOverflowException.cs
- DynamicEndpoint.cs
- ShapeTypeface.cs
- FormatterConverter.cs
- SqlNamer.cs
- HTMLTextWriter.cs
- CodeExpressionStatement.cs
- ArrayConverter.cs
- DefaultValueTypeConverter.cs
- PrimaryKeyTypeConverter.cs
- WebPartVerbsEventArgs.cs
- IteratorFilter.cs