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
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
    • 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
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.Distributed.Cuda
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.FSharp
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.Generic.LinearAlgebra
    • Extreme.Mathematics.Generic.LinearAlgebra.Implementation
    • Extreme.Mathematics.Generic.LinearAlgebra.Providers
    • Extreme.Mathematics.Generic.SignalProcessing
    • Extreme.Mathematics.Implementation
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Complex
    • Extreme.Mathematics.LinearAlgebra.Complex.Decompositions
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IO
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.LinearAlgebra.Providers
    • Extreme.Mathematics.LinearAlgebra.Sparse
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.Genetic
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Numerics.FSharp
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.IO
    • Extreme.Statistics.Linq
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Random
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Collections
    • Aggregator(T, U) Class
    • Aggregator2(T, U) Class
    • Aggregator2Group Class
    • Aggregator2Group(T) Class
    • AggregatorExtensions Class
    • AggregatorGroup Class
    • AggregatorGroup(T) Class
    • Aggregators Class
    • Array1D(T) Structure
    • Array2D(T) Structure
    • ArraySlice(T) Structure
    • DataFrame Class
    • DataFrame(R, C) Class
    • DataFrameRow(R, C) Class
    • DateTimeUnit Enumeration
    • Direction Enumeration
    • Grouping Class
    • Grouping(TKey) Class
    • IAccumulator(T, U) Interface
    • IAccumulator2(T, U) Interface
    • IAccumulator2(T, U, V) Interface
    • IAggregator Interface
    • IAggregator(T) Interface
    • IAggregator2 Interface
    • IAggregator2(T) Interface
    • ICategoricalVector Interface
    • IDataFrame Interface
    • IGrouping Interface
    • IIndex Interface
    • Index Class
    • Index(T) Class
    • IPivot Interface
    • IVector Interface
    • JoinType Enumeration
    • NativeArray1D(T) Structure
    • NativeArray2D(T) Structure
    • NativeArraySlice(T) Structure
    • Pivot Class
    • Pivot(R, C) Class
    • Recurrence Class
    • SortOrder Enumeration
    • TypedVectorWrapper(K, T) Structure
  • Grouping Class
    • Methods
  • Methods
    • ByQuantile(T) Method
    • ByValue Method Overloads
    • ExpandingWindow Method Overloads
    • Group Method Overloads
    • Partition(T) Method
    • Pivot(R, C) Method
    • RangeWindow Method Overloads
    • Resample Method Overloads
    • VariablePartition(T) Method
    • VariableWindow(T) Method
    • Window Method Overloads
  • VariableWindow(T) Method
GroupingVariableWindowT Method Extreme Optimization Numerical Libraries for .NET Professional
Returns a grouping that represents a moving window based on the specified condition.

Namespace: Extreme.Collections
Assembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
Syntax

C#
VB
C++
F#
Copy
public static Grouping<T> VariableWindow<T>(
	Index<T> index,
	Func<T, T, bool> condition,
	bool incremental,
	Direction direction
)
Public Shared Function VariableWindow(Of T) ( 
	index As Index(Of T),
	condition As Func(Of T, T, Boolean),
	incremental As Boolean,
	direction As Direction
) As Grouping(Of T)
public:
generic<typename T>
static Grouping<T>^ VariableWindow(
	Index<T>^ index, 
	Func<T, T, bool>^ condition, 
	bool incremental, 
	Direction direction
)
static member VariableWindow : 
        index : Index<'T> * 
        condition : Func<'T, 'T, bool> * 
        incremental : bool * 
        direction : Direction -> Grouping<'T> 

Parameters

index
Type: Extreme.CollectionsIndexT
The index the grouping is over.
condition
Type: SystemFuncT, T, Boolean
A delegate that indicates whether two keys are in the same window.
incremental
Type: SystemBoolean
Indicates that the right edge of the window is not decreasing.
direction
Type: Extreme.CollectionsDirection
Specifies whether the condition should be verified moving forward or backward through the values.

Type Parameters

T
The element type of the index.

Return Value

Type: GroupingT
Exceptions

ExceptionCondition
ArgumentNullException

index is

-or-

condition is

Remarks

The extent of each window is determined by the first key value and condition. The window is extended as long as condition returns whe applied to the first key and the subsequent keys.

Version Information

Numerical Libraries

Supported in: 5.x
See Also

Reference

Grouping Class
Extreme.Collections Namespace

Copyright (c) 2004-2016 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2018, 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.