diff --git a/W/Debug_Folder/ConsoleApp1.exe b/W/Debug_Folder/ConsoleApp1.exe new file mode 100644 index 000000000..f22b016f5 Binary files /dev/null and b/W/Debug_Folder/ConsoleApp1.exe differ diff --git a/W/Debug_Folder/ConsoleApp1.exe.config b/W/Debug_Folder/ConsoleApp1.exe.config new file mode 100644 index 000000000..ef122f527 --- /dev/null +++ b/W/Debug_Folder/ConsoleApp1.exe.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/W/Debug_Folder/ConsoleApp1.pdb b/W/Debug_Folder/ConsoleApp1.pdb new file mode 100644 index 000000000..e0d3f8345 Binary files /dev/null and b/W/Debug_Folder/ConsoleApp1.pdb differ diff --git a/W/Debug_Folder/CpuMathNative.dll b/W/Debug_Folder/CpuMathNative.dll new file mode 100644 index 000000000..cf054b55f Binary files /dev/null and b/W/Debug_Folder/CpuMathNative.dll differ diff --git a/W/Debug_Folder/LdaNative.dll b/W/Debug_Folder/LdaNative.dll new file mode 100644 index 000000000..6d78150e5 Binary files /dev/null and b/W/Debug_Folder/LdaNative.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.Core.dll b/W/Debug_Folder/Microsoft.ML.Core.dll new file mode 100644 index 000000000..23aad80b6 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.Core.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.Core.xml b/W/Debug_Folder/Microsoft.ML.Core.xml new file mode 100644 index 000000000..a7eec799b --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.Core.xml @@ -0,0 +1,6902 @@ + + + + Microsoft.ML.Core + + + + + Intended to be applied to types and members with internal scope to indicate that friend access of this + internal item is OK from another assembly. This restriction applies only to assemblies that declare the + assembly level attribute. Note that this attribute is not + transferable: an internal member with this attribute does not somehow make a containing internal type + accessible. Conversely, neither does marking an internal type make any unmarked internal members accessible. + + + + + This is an assembly level attribute to signal that friend accesses on this assembly should be checked + for usage of . If this attribute is missing, normal access rules for + friends should apply. + + + + + Allows control of command line parsing. + Attach this attribute to instance fields of types used + as the destination of command line argument parsing. + + + + + Allows control of command line parsing. + + Specifies the error checking to be done on the argument. + + + + The error checking to be done on the argument. + + + + + The short name(s) of the argument. + Set to null means use the default short name if it does not + conflict with any other parameter name. + Set to String.Empty for no short name. + More than one short name can be separated by commas or spaces. + This property should not be set for DefaultArgumentAttributes. + + + + + The help text for the argument. + + + + + Allows the GUI or other tools to inspect the intended purpose of the argument and pick a correct custom control. + + + + + Used to control parsing of command line arguments. + + + + + Indicates that this field is required. An error will be displayed + if it is not present when parsing arguments. + + + + + Only valid in conjunction with Multiple. + Duplicate values will result in an error. + + + + + Indicates that the argument may be specified more than once. + Only valid if the argument is a collection + + + + + The default type for non-collection arguments. + The argument is not required, but an error will be reported if it is specified more than once. + + + + + For non-collection arguments, when the argument is specified more than + once no error is reported and the value of the argument is the last + value which occurs in the argument list. + + + + + The default type for collection arguments. + The argument is permitted to occur multiple times, but duplicate + values will cause an error to be reported. + + + + + Consume the characters of the next token and append them to the string builder. + + + + + Returns true if it quoted. + + + + + A delegate used in error reporting. + + + + + An IComponentFactory that is used in the command line. + + This allows components to be created by name, signature type, and a settings string. + + + + + Parser for command line arguments. + + The parser specification is inferred from the instance fields of the object + specified as the destination of the parse. + Valid argument types are: int, uint, string, bool, enums + Also argument types of Array of the above types are also valid. + + Error checking options can be controlled by adding a ArgumentAttribute + to the instance fields of the destination object. + + At most one field may be marked with the DefaultArgumentAttribute + indicating that arguments without a '-' or '/' prefix will be parsed as that argument. + + If not specified then the parser will infer default options for parsing each + instance field. The default long name of the argument is the field name. The + default short name is the first character of the long name. Long names and explicitly + specified short names must be unique. Default short names will be used provided that + the default short name does not conflict with a long name or an explicitly + specified short name. + + Arguments which are array types are collection arguments. Collection + arguments can be specified multiple times. + + + + + Parses a command line. This assumes that the .exe name has been stripped off. + Errors are output on Console.Error. + Use ArgumentAttributes to control parsing behavior. + + The host environment + The command line + The object to receive the options + true if no errors were detected + + + + Parses a command line. This assumes that the .exe name has been stripped off. + Use ArgumentAttributes to control parsing behavior. + + The host environment + The command line + The object to receive the options + The type of 'destination' + The destination for parse errors. + true if no errors were detected + + + + Parses a command line. This assumes that the exe name has been stripped off. + Use ArgumentAttributes to control parsing behavior. + + The host environment + The command line + The object to receive the options + The destination for parse errors. + true if no errors were detected + + + + Check whether a certain type is numeric. + + + + + Returns a Usage string for command line argument parsing. + Use ArgumentAttributes to control parsing behavior. + + The host environment. + The type of the arguments to display usage for. + The default values. + Whether to show the @file item. + The number of columns to format the output to. + Printable string containing a user friendly description of command line arguments. + + + + Parses an argument list into an object + + + + + + true if successful + + + + Parses an argument list. + + + The arguments to parse. + The destination of the parsed arguments. + true if no parse errors were encountered. + + + + GetSettingsCore handles the top-level case. This handles the nested custom record case. + It deals with custom "unparse" functionality, as well as quoting. It also appends to a StringBuilder + instead of returning a string. + + + + + A user friendly usage string describing the command line argument syntax. + + + + + Creates an ICommandLineComponentFactory given the factory type, signature type, + and a command line string. + + + + + This class exposes those parts of this wrapped appropriate + for public consumption. + + + + + A factory class for creating IComponentFactory instances. + + + + + Indicates that this argument is the default argument. + '/' or '-' prefix only the argument value is specified. + The ShortName property should not be set for DefaultArgumentAttribute + instances. The LongName property is used for usage text only and + does not affect the usage of the argument. + + + + + Indicates that this argument is the default argument. + + Specifies the error checking to be done on the argument. + + + + On an enum value - specifies the display name. + + + + + On an enum value - indicates that the value should not be shown in help or UI. + + + + + This is used to specify a column mapping of a data transform. + + + + + This is meant to be a large text (like a c# code block, for example). + + + + + This is used to specify a column mapping of a data transform. + + + + + Make sure the given assemblies are loaded and that their loadable classes have been catalogued. + + + + + Given an assembly path, load the assembly and register it with the ComponentCatalog. + + + + + Checks whether references the assembly containing LoadableClassAttributeBase, + and therefore can contain components. + + + + + This catalogs instantiable components (aka, loadable classes). Components are registered via + a descendant of , identifying the names and signature types under which the component + type should be registered. Signatures are delegate types that return void and specify that parameter + types for component instantiation. Each component may also specify an "arguments object" that should + be provided at instantiation time. + + + + + Provides information on an instantiable component, aka, loadable class. + + + + + Used for dictionary lookup based on signature and name. + + + + + Count of component construction arguments, NOT including the arguments object (if there is one). + This matches the number of arguments for the signature type delegate(s). + + + + + The type that contains the construction method, whether static Instance property, + static Create method, or constructor. + + + + + Summary of the component. + + + + + UserName may be null or empty, indicating that it should be hidden in UI. + + + + + Whether this is a "hidden" component, that generally shouldn't be displayed + to users. + + + + + All load names. The first is the default. + + + + + The static property that returns an instance of this loadable class. + This creation method does not support an arguments class. + Only one of Ctor, Create and InstanceGetter can be non-null. + + + + + The constructor to create an instance of this loadable class. + This creation method supports an arguments class. + Only one of Ctor, Create and InstanceGetter can be non-null. + + + + + The static method that creates an instance of this loadable class. + This creation method supports an arguments class. + Only one of Ctor, Create and InstanceGetter can be non-null. + + + + + A name of an embedded resource containing documentation for this + loadable class. This is non-null only in the event that we have + verified the assembly of actually contains + this resource. + + + + + The type that contains the arguments to the component. + + + + + Create an instance, given the arguments object and arguments to the signature delegate. + The args should be non-null iff ArgType is non-null. The length of the extra array should + match the number of parameters for the signature delegate. When that number is zero, extra + may be null. + + + + + Create an instance, given the arguments object and arguments to the signature delegate. + The args should be non-null iff ArgType is non-null. The length of the extra array should + match the number of parameters for the signature delegate. When that number is zero, extra + may be null. + + + + + Create an instance with default arguments. + + + + + If is not null, returns a new default instance of . + Otherwise, returns null. + + + + + A description of a single entry point. + + + + + A description of a single component. + The 'component' is a non-standalone building block that is used to parametrize entry points or other ML.NET components. + For example, 'Loss function', or 'similarity calculator' could be components. + + + + + Registers all the components in the specified assembly by looking for loadable classes + and adding them to the catalog. + + + The assembly to register. + + + true to throw an exception if there are errors with registering the components; + false to skip any errors. + + + + + Return an array containing information for all instantiable components. + If provided, the given set of assemblies is loaded first. + + + + + Return an array containing information for instantiable components with the given + signature and base type. If provided, the given set of assemblies is loaded first. + + + + + Return an array containing all the known signature types. If provided, the given set of assemblies + is loaded first. + + + + + Returns a string name for a given signature type. + + + + + Get all registered entry points. + + + + + Akin to , except if the regular (case sensitive) comparison fails, it will + attempt to back off to a case-insensitive comparison. + + + + + Returns all valid component kinds. + + + + + Returns all components of the specified kind. + + + + + Returns all components that implement the specified interface. + + + + + The valid names for the components and entry points must consist of letters, digits, underscores and dots, + and begin with a letter or digit. + + + + + Create an instance of the indicated component with the given extra parameters. + + + + + Try to create an instance of the indicated component and settings with the given extra parameters. + If there is no such component in the catalog, returns false. Any other error results in an exception. + + + + + Parses arguments using CmdParser. If there's a problem, it throws an InvalidOperationException, + with a message giving usage. + + The host environment + The argument object + The settings string + The name is used for error reporting only + + + + Gets a value indicating whether can contain extensions. + + + All ML.NET product assemblies won't contain extensions. + + + + + This is a token interface that all component factories must implement. + + + + + An interface for creating a component with no extra parameters (other than an ). + + + + + An interface for creating a component when we take one extra parameter (and an ). + + + + + An interface for creating a component when we take two extra parameters (and an ). + + + + + An interface for creating a component when we take three extra parameters (and an ). + + + + + A utility class for creating instances. + + + + + Creates a component factory with no extra parameters (other than an ) + that simply wraps a delegate which creates the component. + + + + + Creates a component factory when we take one extra parameter (and an + ) that simply wraps a delegate which creates the component. + + + + + Creates a component factory when we take two extra parameters (and an + ) that simply wraps a delegate which creates the component. + + + + + Creates a component factory when we take three extra parameters (and an + ) that simply wraps a delegate which creates the component. + + + + + A class for creating a component with no extra parameters (other than an ) + that simply wraps a delegate which creates the component. + + + + + A class for creating a component when we take one extra parameter + (and an ) that simply wraps a delegate which + creates the component. + + + + + A class for creating a component when we take one extra parameter + (and an ) that simply wraps a delegate which + creates the component. + + + + + A class for creating a component when we take three extra parameters + (and an ) that simply wraps a delegate which + creates the component. + + + + + A channel provider can create new channels and generic information pipes. + + + + + Start a standard message channel. + + + + + Start a generic information pipe. + + + + + Utility class for IHostEnvironment + + + + + Return a file handle for an input "file". + + + + + Create an output "file" and return a handle to it. + + + + + The host environment interface creates hosts for components. Note that the methods of + this interface should be called from the main thread for the environment. To get an environment + to service another thread, call Fork and pass the return result to that thread. + + + + + Create a host with the given registration name. + + + + + The catalog of loadable components () that are available in this host. + + + + + Signal to stop execution in all the hosts. + + + + + Flag which indicates host execution has been stopped. + + + + + The seed property that, if assigned, makes components requiring randomness behave deterministically. + + + + + The location for the temp files created by ML.NET + + + + + Allow falling back to run on CPU if couldn't run on GPU. + + + + + GPU device ID to run execution on, to run on CPU. + + + + + A host is coupled to a component and provides random number generation and concurrency guidance. + Note that the random number generation, like the host environment methods, should be accessed only + from the main thread for the component. + + + + + The random number generator issued to this component. Note that random number + generators are NOT thread safe. + + + + + A generic information pipe. Note that pipes are disposable. Generally, Done should + be called before disposing to signal a normal shut-down of the pipe, as opposed + to an aborted completion. + + + + + The caller relinquishes ownership of the object. + + + + + The kinds of standard channel messages. + Note: These values should never be changed. We can add new kinds, but don't change these values. + Other code bases, including native code for other projects depends on these values. + + + + + A flag that can be attached to a message or exception to indicate that + it has a certain class of sensitive data. By default, messages should be + specified as being of unknown sensitivity, which is to say, every + sensitivity flag is turned on, corresponding to . + Messages that are totally safe should be marked as . + However, if, say, one prints out data from a file (for example, this might + be done when expressing parse errors), it should be flagged in that case + with . + + + + + For non-sensitive data. + + + + + For messages that may contain user-data from data files. + + + + + For messages that contain information like column names from datasets. + Note that, despite being part of the schema, annotations should be treated + as user data, since it is often derived from user data. Note also that + types, despite being part of the schema, are not considered "sensitive" + as such, in the same way that column names might be. + + + + + The default value, unknown, is treated as if everything is sensitive. + + + + + An alias for , so it is functionally the same, except + semantically it communicates the idea that we want all bits set. + + + + + A channel message. + + + + + Line endings may not be normalized. + + + + + A standard communication channel. + + + + + General utility extension methods for objects in the "host" universe, i.e., + , , and + that do not belong in more specific areas, for example, or + component creation. + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + Convenience variant of + setting . + + + + + This is a factory interface for . + Both and implement this interface, + to allow for nested progress reporters. + + REVIEW: make implement this, instead of the environment? + + + + + Create a progress channel for a computation named . + + + + + A common interface for progress reporting. + It is expected that the progress channel interface is used from only one thread. + + Supported workflow: + 1) Create the channel via . + 2) Call as many times as desired (including 0). + Each call to supersedes the previous one. + 3) Report checkpoints (0 or more) by calling . + 4) Repeat steps 2-3 as often as necessary. + 5) Dispose the channel. + + + + + Set up the reporting structure: + - Set the 'header' of the progress reports, defining which progress units and metrics are going to be reported. + - Provide a thread-safe delegate to be invoked whenever anyone needs to know the progress. + + It is acceptable to call multiple times (or none), regardless of whether the calculation is running + or not. Because of synchronization, the computation should not deny calls to the 'old' + delegates even after a new one is provided. + + The header object. + The delegate to provide actual progress. The parameter of + the delegate will correspond to the provided . + + + + Submit a 'checkpoint' entry. These entries are guaranteed to be delivered to the progress listener, + if it is interested. Typically, this would contain some intermediate metrics, that are only calculated + at certain moments ('checkpoints') of the computation. + + For example, SDCA may report a checkpoint every time it computes the loss, or LBFGS may report a checkpoint + every iteration. + + The only parameter, , is interpreted in the following fashion: + * First MetricNames.Length items, if present, are metrics. + * Subsequent ProgressNames.Length items, if present, are progress units. + * Subsequent ProgressNames.Length items, if present, are progress limits. + * If any more values remain, an exception is thrown. + + The metrics, progress units and progress limits. + + + + This is the 'header' of the progress report. + + + + + These are the names of the progress 'units', from the least granular to the most granular. + For example, neural network might have {'epoch', 'example'} and FastTree might have {'tree', 'split', 'feature'}. + Will never be null, but can be empty. + + + + + These are the names of the reported metrics. For example, this could be the 'loss', 'weight updates/sec' etc. + Will never be null, but can be empty. + + + + + Initialize the header. This will take ownership of the arrays. + Both arrays can be null, even simultaneously. This 'empty' header indicated that the calculation doesn't report + any units of progress, but the tracker can still track start, stop and elapsed time. Of course, if there's any + progress or metrics to report, it is always better to report them. + + The metrics that the calculation reports. These are completely independent, and there + is no contract on whether the metric values should increase or not. As naming convention, + can have multiple words with spaces, and should be title-cased. + The names of the progress units, listed from least granular to most granular. + The idea is that the progress should be lexicographically increasing (like [0,0], [0,10], [1,0], [1,15], [2,5] etc.). + As naming convention, should be lower-cased and typically plural + (for example, iterations, clusters, examples). + + + + A constructor for no metrics, just progress units. As naming convention, should be lower-cased + and typically plural (for example, iterations, clusters, examples). + + + + + A metric/progress holder item. + + + + + Set the progress value for the index to , + and the limit value for the progress becomes 'unknown'. + + + + + Set the progress value for the index to , + and the limit value to . If is a NAN, it is set to null instead. + + + + + Sets the metric with index to . + + + + + The progress reporting classes used by descendants. + + + + + The progress channel for . + This is coupled with a that aggregates all events and returns them on demand. + + + + + The pair of (header, fill action) is updated atomically. + + + + + Normally this should be readonly field, but we want to null it in Dispose to prevent memory leaking. + + + + + Initialize a for the process identified by . + + The exception context. + The tracker to couple with. + The computation name. + + + + Pull the current progress by invoking the fill delegate, if any. + + + + + This is a 'derived' or 'subordinate' progress channel. + + The subordinates' Start/Stop events and checkpoints will not be propagated. + When the status is requested, all of the subordinate channels are also invoked, + and the resulting metrics are then returned in the order of their 'subordinate level'. + If there's more than one channel with the same level, the order is not defined. + + + + + The pair of (header, fill action) is updated atomically. + + + + + Pull the current progress by invoking the fill delegate, if any. + + + + + This class listens to the progress reporting channels, caches all checkpoints and + start/stop events and, on demand, requests current progress on all active calculations. + + The public methods of this class should only be called from one thread. + + + + + Log of pending events. + + + + + For each calculation, its properties. + This list is protected by , and it's updated every time a new calculation starts. + The entries are cleaned up when the start and stop events are reported (that is, after the first + pull request after the calculation's 'Stop' event). + + + + + This is a 'process index' that gets incremented whenever a new calculation is started. + + + + + The set of used process names. + + + + + This class is an 'event log' for one calculation. + + Every time a calculation is 'started', it gets its own log, so if there are multiple 'start' calls, + there will be multiple logs. + + + + + Auto-assigned index to serve as a unique ID. + + + + + Name is auto-modified from the calculation name provided by the pipe. + + + + + A log of pending checkpoint entries. + + + + + Whether the calculation has finished. + + + + + Get progress reports from all current calculations. + For every calculation the following events will be returned: + * A start event. + * Each checkpoint. + * If the calculation is finished, the stop event. + + Each of the above events will be returned exactly once. + If, for one calculation, there's no events in the above categories, the tracker will + request ('pull') the current progress and return this as an event. + + + + + An array-backed implementation of . + + + + + The header (names of metrics and units). + The contents of the header should be treated as read-only. The calculation itself doesn't even + need to access the header, since it will know it anyway. + + + + + Whether the progress entry is a 'checkpoint' (that is, it's being pushed by the component). + + + + + The actual progress (amount of completed units), in the units that are contained in the header. + Parallel to the header's . Null value indicates 'not applicable now'. + + The computation should not modify these arrays directly, and instead rely on , + and . + + + + + The lim values of each progress unit. + Parallel to the header's . Null value indicates unbounded or unknown. + + + + + The reported metrics. Parallel to the header's . + Null value indicates unknown. + + + + + Set the progress value for the index to , + and the limit value for the progress becomes 'unknown'. + + + + + Set the progress value for the index to , + and the limit value to . + + + + + Sets the metric with index to . + + + + + Creates the progress entry corresponding to a given header. + + + + + An event about calculation progress. It could be either start/stop of the calculation, or a progress entry. + + + + + Instances of this class are used to set up a bundle of named delegates. These + delegates are registered through and its overloads. + Once all registrations are done, is called and a message + of type is sent through the input channel + provider. The intended use case is that any information surfaced through these + delegates will be published in some fashion, with the target scenario being + that the library will publish some sort of restful API. + + + + + Returns either this object, or null if there are no listeners on this server + channel. This can be used in conjunction with the ?. operator to have more + performant though more robust calls to and + . + + + + + Starts a new server channel. + + The channel provider, on which to send + the notification that a server is being constructed + A semi-unique identifier for this + "bundle" that is being constructed + The constructed server channel, or null if there + was no listeners for server channels registered on + + + + Finalizes all registrations of delegates, and pipes the bundle of objects + in a up through the pipe to be consumed by any + listeners. + + + + + Entry point factory for creating instances. + + + + + Classes that want to publish the bundles from server channels in some fashion should implement + this interface. The intended simple use case is that this will be some form of in-process web + server, and then when disposed, they should stop themselves. + + Note that the primary communication with the server from the client code's perspective is not + through method calls on this interface, but rather communication through an + that the server will listen to throughout its + lifetime. + + + + + This should return the base address where the server is. If this server is not actually + serving content at any URL, this property should be null. + + + + + Creates what might be considered a good "default" server factory, if possible, + or null if no good default was possible. A null value could be returned, + for example, if a user opted to remove all implementations of and + the associated for security reasons. + + + + + When a is created, the creation method will send an implementation + is a notification sent through an , to indicate that + a may be pending soon. Listeners that want to receive the bundle to + expose it, for example, a web service, should register this interest by passing in an action to be called. + If no listener registers interest, the server channel that sent the notification will act + differently by, say, acting as a no-op w.r.t. client calls to it. + + + + + Any publisher of the named delegates will call this method, upon receiving an instance + of this object through the pipe. This method serves two purposes: firstly it detects + whether anyone is even interested in publishing anything at all, so that we can just + ignore any input delegates in the case where no one is listening (which, we must expect, + is the majority of scenarios). The second is that it provides an action to call, once + all publishing is complete, and has been called by the client code. + + The callback to perform when all named delegates have been registered, + and is called. + + + + The final bundle of published named delegates that a listener can serve. + + + + + This contains a name to delegate mappings. The delegates contained herein are gauranteed to be + some variety of , , + , etc. + + + + + This should be a more-or-less unique identifier for the type of API this bundle is producing. + Its intended use is that it will form part of the URL for the RESTful API, so to the extent that + it contains multiple tokens they must be slash delimited. + + + + + Convenience method for that looks more idiomatic to typical + channel creation methods on . + + The channel provider. + This is an identifier of the "type" of bundle that is being published, + and should form a path with forward-slash '/' delimiters. + The newly created server channel, or null if there was no listener for + server channels on . + + + + The console environment. As its name suggests, should be limited to those applications that deliberately want + console functionality. + + + + + Query all progress and: + * If there's any checkpoint/start/stop event, print all of them. + * If there's none, print a dot. + * If there's dots, print the current status for all running calculations. + + + + + If we printed any dots so far, finish the line. This call is expected to be protected by _lock. + + + + + Print a progress dot. Returns whether it is 'time' to print more info. This call is expected + to be protected by _lock. + + + + + Create an ML.NET for local execution, with console feedback. + + Random seed. Set to null for a non-deterministic environment. + Set to true for fully verbose logging. + Allowed message sensitivity. + Text writer to print normal messages to. + Text writer to print error messages to. + Optional TextWriter to write messages if the host is a test environment. + + + + Pull running calculations for their progress and output all messages to the console. + If no messages are available, print a dot. + If a specified number of dots are printed, print an ad-hoc status of all running calculations. + + + + + Redirects the channel output through the specified writers. + + This method is not thread-safe. + + + + Base class for channel providers. This is a common base class for. + The ParentFullName, ShortName, and FullName may be null or empty. + + + + + Data keys that are attached to the exception thrown via the exception context. + + + + + The channel depth, NOT host env depth. + + + + + ExceptionContext description. + + + + + Override this method to change the way full names are constructed. + + + + + Message source (a channel) that generated the message being dispatched. + + + + + A basic host environment suited for many environments. + This also supports modifying the concurrency factor, provides the ability to subscribe to pipes via the + AddListener/RemoveListener methods, and exposes the to + query progress. + + + + + Base class for hosts. Classes derived from may choose + to provide their own host class that derives from this class. + This encapsulates the random number generator and name information. + + + + + This method registers and returns the host for the calling component. The generated host is also + added to and encapsulated by . It becomes + necessary to remove these hosts when they are reclaimed by the Garbage Collector. + + + + + Base class for implementing . Deriving classes can optionally override + the Done() and the DisposeCore() methods. If no overrides are needed, the sealed class + may be used. + + + + + A base class for implementations. A message is dispatched as a + . Deriving classes can optionally override the Done() and the + DisposeCore() methods. + + + + + An optional implementation of . + + + + + Base class for . The master host environment has a + map from to . + + + + + Strongly typed dispatcher class. + + + + + This field is actually used as a , which holds the listener actions + for all listeners that are currently subscribed. The action itself is an immutable object, so every time + any listener subscribes or unsubscribes, the field is replaced with a modified version of the delegate. + + The field can be null, if no listener is currently subscribed. + + + + + The dispatch delegate invokes the current dispatching action (wchch calls all current listeners). + + + + + The main constructor. + + + + + This constructor is for forking. + + + + + This method registers and returns the host for the calling component. The generated host is also + added to and encapsulated by . It becomes + necessary to remove these hosts when they are reclaimed by the Garbage Collector. + + + + + This method is called when a channel is created and when a listener is registered. + This method is not invoked on every message. + + + + + Line endings in message may not be normalized, this method provides normalized printing. + + The text writer to write to. + The message, which if it contains newlines will be normalized. + If false, then two newlines will be printed at the end, + making messages be bracketed by blank lines. If true then only the single newline at the + end of a message is printed. + A prefix that will be written to every line, except the first line. + If contains no newlines then this prefix will not be + written at all. This prefix is not written to the newline written if + is false. + + + + Interface for "processing" exceptions before they are thrown. This can + be used to add context to the exception, wrap the exception in another one, + totally replace the exception, etc. It is not legal to return null from + Process (unless null was passed in, which really shouldn't happen). + + + + + A string describing the context itself. + + + + + Does standard processing of an exception (typically called after construction + but before it is thrown). + + + + + Mark the exception by setting in the exception + to 1. + + + + + Indicates whether the exception was "marked" the Contracts code. + + + + + Exceptions whose message communicates potentially sensitive information should be + marked using this method, before they are thrown. Note that if the exception already + had this flag set, the message will be flagged with the bitwise or of the existing + flag, alongside the passed in sensitivity. + + + + + This is a convenience method to get the sensitivity of an exception, + as encoded with . If there is no key, then + the message is assumed to be of unknown sensitivity, i.e., it is assumed + that it might contain literally anything. + + The exception to query + The value encoded at the , if it is + a value. If neither of these conditions + hold then is returned. + + + + This is an internal convenience implementation of an exception context to make marking + exceptions with a specific sensitivity flag a bit less onerous. The alternative to a scheme + like this, where messages are marked through use of , + would be that every check and exception method in this file would need some "peer" where + sensitivity was set. Since there are so many, we have this method instead. I'm not sure if + there will be performance implications. There shouldn't be, since checks rarely happen in + tight loops. + + + + + We will run this instances first. + This can be null. + + + + + Exceptions will be marked with this. If happens to mark it with a sensitivity + flag, then the result will not only be this value, but the bitwise or of this with the existing + value. + + + + + A convenience context for marking exceptions from checks and excepts with . + + + + + A convenience context for marking exceptions from checks and excepts with . + + + + + A convenience context for marking exceptions from checks and excepts with . + + + + + A convenience context for marking exceptions from checks and excepts with . + + + + + A convenience context for marking exceptions from checks and excepts with . + + + + + A convenience context for marking exceptions from checks and excepts with . + + + + + Sets the assert handler to the given function, returning the previous handler. + + + + + Default exception type (currently InvalidOperationException) + + + + + For signaling bad user input. + + + + + For signaling bad function parameters. + + + + + For signaling null function parameters. + + + + + For signaling null or empty function parameters (strings, arrays, collections, etc). + + + + + For signaling null, empty or white-space function parameters (strings, arrays, collections, etc). + + + + + For signaling errors in decoding information, whether while reading from a file, + parsing user input, etc. + + + + + + For signaling IO failures. + + + + + For signaling functionality that is not YET implemented. + + + + + For signaling functionality that is not implemented by design. + + + + + For signaling schema validation issues. + + + + + CheckUserArg / ExceptUserArg should be used when the validation of user-provided arguments failed. + Typically, this is shortly after the arguments are parsed using CmdParser. + + + + + Check state of the host and throw exception if host marked to stop all execution. + + + + + This documents that the parameter can legally be null. + + + + + This documents that the parameter can legally be null. + + + + + This documents that the parameter can legally be null. + + + + + The base attribute type for all attributes used for extensibility purposes. + + + + + Common signature type with no extra parameters. + + + + + Assembly attribute used to specify that a class is loadable by a machine learning + host environment, such as TLC + + The class type that is loadable + The argument type that the constructor takes (may be null) + The signature of the constructor of this class (in addition to the arguments parameter) + The name to use when presenting a list to users + The names that can be used to load the class, for example, from a command line + + + + Assembly attribute used to specify that a class is loadable by a machine learning + host environment, such as TLC + + The class type that is loadable + The class type that contains the construction method + The argument type that the constructor takes (may be null) + The signature of the constructor of this class (in addition to the arguments parameter) + The name to use when presenting a list to users + The names that can be used to load the class, for example, from a command line + + + + Assembly attribute used to specify that a class is loadable by a machine learning + host environment, such as TLC + + The description summary of the class type + The class type that is loadable + The argument type that the constructor takes (may be null) + The signature of the constructor of this class (in addition to the arguments parameter) + The name to use when presenting a list to users + The names that can be used to load the class, for example, from a command line + + + + Assembly attribute used to specify that a class is loadable by a machine learning + host environment, such as TLC + + The description summary of the class type + The class type that is loadable + The class type that contains the construction method + The argument type that the constructor takes (may be null) + The signature of the constructor of this class (in addition to the arguments parameter) + The name to use when presenting a list to users + The names that can be used to load the class, for example, from a command line + + + + The type that is created/loaded. + + + + + The type that contains the construction method, whether static Instance property, + static Create method, or constructor. Of course, a constructor is only permissible if + this type derives from InstanceType. This defaults to the same as InstanceType. + + + + + The command line arguments object type. This should be null if there isn't one. + + + + + This indicates the extra parameter types. It must be a delegate type. The return type should be void. + The parameter types of the SigType delegate should NOT include the ArgType. + + + + + Note that CtorTypes includes the ArgType (if there is one), and the parameter types of the SigType. + + + + + The description summary of the class type. + + + + + UserName may be null or empty indicating that it should be hidden in UI. + + + + + This should indicate a path within the doc/public directory next to the TLC + solution, where the documentation lies. This value will be used as part of a URL, so, + the path separator should be phrased as '/' forward slashes rather than backslashes. + + + + Add slot names annotation. + + The to which to add the slot names. + The size of the slot names vector. + The getter delegate for the slot names. + + + + Add key values annotation. + + The value type of key values. + The to which to add the key values. + The size of key values vector. + The value type of key values. Its raw type must match . + The getter delegate for the key values. + + + + Utilities for implementing and using the annotation API of . + + + + + This class lists the canonical annotation kinds + + + + + Annotation kind for names associated with slots/positions in a vector-valued column. + The associated annotation type is typically fixed-sized vector of Text. + + + + + Annotation kind for values associated with the key indices when the column type's item type + is a key type. The associated annotation type is typically fixed-sized vector of a primitive + type. The primitive type is frequently Text, but can be anything. + + + + + Annotation kind for sets of score columns. The value is typically a with raw type U4. + + + + + Annotation kind that indicates the prediction kind as a string. For example, "BinaryClassification". + The value is typically a ReadOnlyMemory<char>. + + + + + Annotation kind that indicates the value kind of the score column as a string. For example, "Score", "PredictedLabel", "Probability". The value is typically a ReadOnlyMemory. + + + + + Annotation kind that indicates if a column is normalized. The value is typically a Bool. + + + + + Annotation kind that indicates if a column is visible to the users. The value is typically a Bool. + Not to be confused with IsHidden() that determines if a column is masked. + + + + + Annotation kind for the label values used in training to be used for the predicted label. + The value is typically a fixed-sized vector of Text. + + + + + Annotation kind that indicates the ranges within a column that are categorical features. + The value is a vector type of ints with dimension of two. The first dimension + represents the number of categorical features and second dimension represents the range + and is of size two. The range has start and end index(both inclusive) of categorical + slots within that column. + + + + + This class holds all pre-defined string values that can be found in canonical annotations + + + + + Helper delegate for marshaling from generic land to specific types. Used by the Marshal method below. + + + + + Returns a standard exception for responding to an invalid call to GetAnnotation. + + + + + Returns a standard exception for responding to an invalid call to GetAnnotation. + + + + + Helper to marshal a call to GetAnnotation{TValue} to a specific type. + + + + + Returns a vector type with item type text and the given size. The size must be positive. + This is a standard type for annotation consisting of multiple text values, eg SlotNames. + + + + + Returns a vector type with item type int and the given size. + The range count must be a positive integer. + This is a standard type for annotation consisting of multiple int values that represent + categorical slot ranges with in a column. + + + + + The type of the ScoreColumnSetId annotation. + + + + + Returns a key-value pair useful when implementing GetAnnotationTypes(col). + + + + + Returns a key-value pair useful when implementing GetAnnotationTypes(col). This assumes + that the values of the key type are Text. + + + + + Given a type and annotation kind string, returns a key-value pair. This is useful when + implementing GetAnnotationTypes(col). + + + + + Prepends a params array to an enumerable. Useful when implementing GetAnnotationTypes. + + + + + Returns the max value for the specified annotation kind. + The annotation type should be a with raw type U4. + colMax will be set to the first column that has the max value for the specified annotation. + If no column has the specified annotation, colMax is set to -1 and the method returns zero. + The filter function is called for each column, passing in the schema and the column index, and returns + true if the column should be considered, false if the column should be skipped. + + + + + Returns the set of column ids which match the value of specified annotation kind. + The annotation type should be a with raw type U4. + + + + + Returns the set of column ids which match the value of specified annotation kind. + The annotation type should be of type text. + + + + + Returns true if the specified column: + * has a SlotNames annotation + * annotation type is VBuffer<ReadOnlyMemory<char>> of length . + + + + + Returns whether a column has the annotation indicated by + the schema shape. + + The schema shape column to query + True if and only if the column has the annotation + of a scalar type, which we assume, if set, should be true. + + + + Returns whether a column has the annotation indicated by + the schema shape. + + The schema shape column to query + True if and only if the column is a definite sized vector type, has the + annotation of definite sized vectors of text. + + + + Tries to get the annotation kind of the specified type for a column. + + The raw type of the annotation, should match the PrimitiveType type + The schema + The type of the annotation + The annotation kind + The column + The value to return, if successful + True if the annotation of the right type exists, false otherwise + + + + The categoricalFeatures is a vector of the indices of categorical features slots. + This vector should always have an even number of elements, and the elements should be parsed in groups of two consecutive numbers. + So if its value is the range of numbers: 0,2,3,4,8,9 + look at it as [0,2],[3,4],[8,9]. + The way to interpret that is: feature with indices 0, 1, and 2 are one categorical + Features with indices 3 and 4 are another categorical. Features 5 and 6 don't appear there, so they are not categoricals. + + + + + Produces sequence of columns that are generated by trainer estimators. + + whether we should also append 'IsNormalized' (typically for probability column) + + + + Produces annotations for the score column generated by trainer estimators for multiclass classification. + If input LabelColumn is not available it produces slotnames annotation by default. + + Label column. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Presents a as a an . + + The annotations to wrap. + A row that wraps an input annotations. + + + + Extension methods related to the ColumnType class. + + + + + Whether this type is a standard scalar type completely determined by its + (not a or , etc). + + + + + Zero return means it's not a key type. + + + + + Sometimes it is necessary to cast the Count to an int. This performs overflow check. + Zero return means it's not a key type. + + + + + For non-vector types, this returns the column type itself (i.e., return ). + For vector types, this returns the type of the items stored as values in vector. + + + + + Zero return means either it's not a vector or the size is unknown. + + + + + For non-vectors, this returns one. For unknown size vectors, it returns zero. + For known sized vectors, it returns size. + + + + + Whether this is a vector type with known size. Returns false for non-vector types. + Equivalent to > 0. + + + + + Gets the equivalent for the 's RawType. + This can return default() if the RawType doesn't have a corresponding + . + + + + + Equivalent to calling Equals(ColumnType) for non-vector types. For vector type, + returns true if current and other vector types have the same size and item type. + + + + + Specifies a simple data type. + + + or [text](xref:Microsoft.ML.Data.TextDataViewType) | Empty or `null` string (both result in empty `System.ReadOnlyMemory` | | + | [Key](xref:Microsoft.ML.Data.KeyDataViewType) type (supported by the unsigned integer types in `DataKind`) | Not defined | Always `false` | + | All other types | Default value of the corresponding system type as defined by .NET standard. In C#, default value expression `default(T)` provides that value. | Equality test with the default value | + + The table below shows the missing value definition for each of the data types. + + | Type | Missing Value | IsMissing Indicator | + | -- | -- | -- | + | or [text](xref:Microsoft.ML.Data.TextDataViewType) | Not defined | Always `false` | + | [Key](xref:Microsoft.ML.Data.KeyDataViewType) type (supported by the unsigned integer types in `DataKind`) | `0` | Equality test with `0` | + | | | | + | | | | + | All other types | Not defined | Always `false` | + + ]]> + + + + + 1-byte integer, type of . + + + 1-byte unsigned integer, type of . + + + 2-byte integer, type of . + + + 2-byte unsigned integer, type of . + + + 4-byte integer, type of . + + + 4-byte unsigned integer, type of . + + + 8-byte integer, type of . + + + 8-byte unsigned integer, type of . + + + 4-byte floating-point number, type of . + + + 8-byte floating-point number, type of . + + + + string, type of , where T is . + Also compatible with . + + + + boolean variable type, type of . + + + type of . + + + type of . + + + type of . + + + + Data type specifier used in command line. is the underlying version of + used for command line and entry point BC. + + + + + Extension methods related to the DataKind enum. + + + + + Maps a DataKind to a value suitable for indexing into an array of size KindCount. + + + + + Maps from an index into an array of size KindCount to the corresponding DataKind + + + + + This function converts to . + Because is a subset of , the conversion is straightforward. + + + + + This function converts to . + Because is a subset of , we should check if + can be found in . + + + + + For integer DataKinds, this returns the maximum legal value. For un-supported kinds, + it returns zero. + + + + + For integer Types, this returns the maximum legal value. For un-supported Types, + it returns zero. + + + + + For integer DataKinds, this returns the minimum legal value. For un-supported kinds, + it returns one. + + + + + Maps a DataKind to the associated .Net representation type. + + + + + Try to map a System.Type to a corresponding DataKind value. + + + + + Get the canonical string for a DataKind. Note that using DataKind.ToString() is not stable + and is also slow, so use this instead. + + + + + A file handle. + + + + + Returns whether CreateWriteStream is expected to succeed. Typically, once + CreateWriteStream has been called once, this will forever more return false. + + + + + Returns whether OpenReadStream is expected to succeed. + + + + + Create a writable stream for this file handle. + + + + + Open a readable stream for this file handle. + + + + + A simple disk-based file handle. + + + + + This interface maps an input to an output . Typically, the output contains + both the input columns and new columns added by the implementing class, although some implementations may + return a subset of the input columns. + This interface is similar to , except it does not have any input role mappings, + so to rebind, the same input column names must be used. + Implementations of this interface are typically created over defined input . + + + + + Mappers are defined as accepting inputs with this very specific schema. + + + + + Gets an instance of which describes the columns' names and types in the output generated by this mapper. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Get an with the indicated active columns, based on the input . + Getting values on inactive columns of the returned row will throw. + + The of should be the same object as + . Implementors of this method should throw if that is not the case. Conversely, + the returned value must have the same schema as . + + This method creates a live connection between the input and the output . In particular, when the getters of the output are invoked, they invoke the + getters of the input row and base the output values on the current values of the input . + The output values are re-computed when requested through the getters. Also, the returned + will dispose when it is disposed. + + + + + A mapper that can be bound to a (which encapsulates a and has mappings from column kinds + to columns of that schema). Binding an to a produces an + , which is an interface that has methods to return the names and indices of the input columns + needed by the mapper to compute its output. The is an extention to this interface, that + can also produce an output given an input . The produced generally contains only the output columns of the mapper, and not + the input columns (but there is nothing preventing an from mapping input columns directly to outputs). + This interface is implemented by wrappers of IValueMapper based predictors, which are predictors that take a single + features column. New predictors can implement directly. Implementing + includes implementing a corresponding (or ) and a corresponding ISchema + for the output schema of the . In case the interface is implemented, + the SimpleRow class can be used in the method. + + + + + This interface is used to map a schema from input columns to output columns. The should keep track + of the input columns that are needed for the mapping. + + + + + The that was passed to the in the binding process. + + + + + Gets schema of this mapper's output. + + + + + A property to get back the that produced this . + + + + + This method returns the binding information: which input columns are used and in what roles. + + + + + This interface extends . + + + + + Input schema accepted. + + + + + Given a set of columns, from the newly generated ones, return the input columns that are needed to generate those output columns. + + + + + Get an with the indicated active columns, based on the input . + Getting values on inactive columns of the returned row will throw. + + The of should be the same object as + . Implementors of this method should throw if that is not the case. Conversely, + the returned value must have the same schema as . + + This method creates a live connection between the input and the output . In particular, when the getters of the output are invoked, they invoke the + getters of the input row and base the output values on the current values of the input . + The output values are re-computed when requested through the getters. Also, the returned + will dispose when it is disposed. + + + + + Delegate type to map/convert a value. + + + + + Delegate type to map/convert among three values, for example, one input with two + outputs, or two inputs with one output. + + + + + Interface for mapping a single input value (of an indicated ColumnType) to + an output value (of an indicated ColumnType). This interface is commonly implemented + by predictors. Note that the input and output ColumnTypes determine the proper + type arguments for GetMapper, but typically contain additional information like + vector lengths. + + + + + Get a delegate used for mapping from input to output values. Note that the delegate + should only be used on a single thread - it should NOT be assumed to be safe for concurrency. + + + + + Interface for mapping a single input value (of an indicated ColumnType) to an output value + plus distribution value (of indicated ColumnTypes). This interface is commonly implemented + by predictors. Note that the input, output, and distribution ColumnTypes determine the proper + type arguments for GetMapper, but typically contain additional information like + vector lengths. + + + + + Get a delegate used for mapping from input to output values. Note that the delegate + should only be used on a single thread - it should NOT be assumed to be safe for concurrency. + + + + + Extension methods related to the class. + + + + + Sometimes it is necessary to cast the Count to an int. This performs overflow check. + + + + + Base class for a cursor has an input cursor, but still needs to do work on . + + + + Gets the input cursor. + + + + Returns the root cursor of the input. It should be used to perform + operations, but with the distinction, as compared to , that this is not + a simple passthrough, but rather very implementation specific. For example, a common usage of this class is + on filter cursor implementations, where how that input cursor is consumed is very implementation specific. + That is why this is , not . + + + + + Base class for creating a cursor of rows that filters out some input rows. + + + + + Return whether the current input row should be returned by this cursor. + + + + + A base class for a that has an input cursor, but still needs to do work on + . Note that the default + assumes that each input column is exposed as an + output column with the same column index. + + + + Gets row's schema. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Compare equality with the given system string value. + + + + + Splits on the left-most occurrence of separator and produces the left + and right of values. If does not contain the separator character, + this returns false and sets to this instance and + to the default of value. + + + + + Splits on the left-most occurrence of an element of separators character array and + produces the left and right of values. If does not contain any of the + characters in separators, this return false and initializes to this instance + and to the default of value. + + + + + Returns a of with leading and trailing spaces trimmed. Note that this + will remove only spaces, not any form of whitespace. + + + + + Returns a of with leading and trailing whitespace trimmed. + + + + + Returns a of with trailing whitespace trimmed. + + + + + Encapsulates a plus column role mapping information. The purpose of role mappings is to + provide information on what the intended usage is for. That is: while a given data view may have a column named + "Features", by itself that is insufficient: the trainer must be fed a role mapping that says that the role + mapping for features is filled by that "Features" column. This allows things like columns not named "Features" + to actually fill that role (as opposed to insisting on a hard coding, or having every trainer have to be + individually configured). Also, by being a one-to-many mapping, it is a way for learners that can consume + multiple features columns to consume that information. + + This class has convenience fields for several common column roles (for example, , ), but can hold an arbitrary set of column infos. The convenience fields are non-null if and only + if there is a unique column with the corresponding role. When there are no such columns or more than one such + column, the field is null. The , , and + methods provide some cardinality information. Note that all columns assigned roles are guaranteed to be non-hidden + in this schema. + + + Note that instances of this class are, like instances of , immutable. + + It is often the case that one wishes to bundle the actual data with the role mappings, not just the schema. For + that case, please use the class. + + Note that there is no need for components consuming a or + to make use of every defined mapping. Consuming components are also expected to ignore any + they do not handle. They may very well however complain if a mapping they wanted to see is not present, or the column(s) + mapped from the role are not of the form they require. + + + + + + + Instances of this are the keys of a . This class also holds some important + commonly used pre-defined instances available (for example, , ) that should + be used when possible for consistency reasons. However, practitioners should not be afraid to declare custom + roles if approppriate for their task. + + + + + Role for features. Commonly used as the independent variables given to trainers, and scorers. + + + + + Role for labels. Commonly used as the dependent variables given to trainers, and evaluators. + + + + + Role for group ID. Commonly used in ranking applications, for defining query boundaries, or + sequence classification, for defining the boundaries of an utterance. + + + + + Role for sample weights. Commonly used to point to a number to make trainers give more weight + to a particular example. + + + + + Role for sample names. Useful for informational and tracking purposes when scoring, but typically + without affecting results. + + + + + Role for feature contributions. Useful for specific diagnostic functionality. + + + + + The string value for the role. Guaranteed to be non-empty. + + + + + Constructor for the column role. + + The value for the role. Must be non-empty. + + + + Convenience method for creating a mapping pair from a role to a column name + for giving to constructors of and . + + The column name to map to. Can be null, in which case when used + to construct a role mapping structure this pair will be ignored + A key-value pair with this instance as the key and as the value + + + + The source . + + + + + The column, when there is exactly one (null otherwise). + + + + + The column, when there is exactly one (null otherwise). + + + + + The column, when there is exactly one (null otherwise). + + + + + The column, when there is exactly one (null otherwise). + + + + + The column, when there is exactly one (null otherwise). + + + + + Returns whether there are any columns with the given column role. + + + + + Returns whether there is exactly one column of the given role. + + + + + Returns whether there are two or more columns of the given role. + + + + + If there are columns of the given role, this returns the infos as a readonly list. Otherwise, + it returns null. + + + + + An enumerable over all role-column associations within this object. + + + + + An enumerable over all role-column associations within this object. + + + + + An enumerable over all role-column associations for the given role. This is a helper function + for implementing the method. + + + + + Returns the corresponding to if there is + exactly one such mapping, and otherwise throws an exception. + + The role to look up + The column corresponding to that role, assuming there was only one column + mapped to that + + + + Constructor given a schema, and mapping pairs of roles to columns in the schema. + This skips null or empty column-names. It will also skip column-names that are not + found in the schema if is true. + + The schema over which roles are defined + Whether to consider the column names specified "optional" or not. If false then any non-empty + values for the column names that does not appear in will result in an exception being thrown, + but if true such values will be ignored + The column role to column name mappings + + + + Constructor given a schema, and mapping pairs of roles to columns in the schema. + This skips null or empty column names. It will also skip column-names that are not + found in the schema if is true. + + The schema over which roles are defined + The column role to column name mappings + Whether to consider the column names specified "optional" or not. If false then any non-empty + values for the column names that does not appear in will result in an exception being thrown, + but if true such values will be ignored + + + + Convenience constructor for role-mappings over the commonly used roles. Note that if any column name specified + is null or whitespace, it is ignored. + + The schema over which roles are defined + The column name that will be mapped to the role + The column name that will be mapped to the role + The column name that will be mapped to the role + The column name that will be mapped to the role + The column name that will be mapped to the role + Any additional desired custom column role mappings + Whether to consider the column names specified "optional" or not. If false then any non-empty + values for the column names that does not appear in will result in an exception being thrown, + but if true such values will be ignored + + + + Encapsulates an plus a corresponding . + Note that the schema of of is + guaranteed to equal the the of . + + + + + The data. + + + + + The role mapped schema. Note that 's is + guaranteed to be the same as 's . + + + + + Constructor given a data view, and mapping pairs of roles to columns in the data view's schema. + This skips null or empty column-names. It will also skip column-names that are not + found in the schema if is true. + + The data over which roles are defined + Whether to consider the column names specified "optional" or not. If false then any non-empty + values for the column names that does not appear in 's schema will result in an exception being thrown, + but if true such values will be ignored + The column role to column name mappings + + + + Constructor given a data view, and mapping pairs of roles to columns in the data view's schema. + This skips null or empty column-names. It will also skip column-names that are not + found in the schema if is true. + + The schema over which roles are defined + The column role to column name mappings + Whether to consider the column names specified "optional" or not. If false then any non-empty + values for the column names that does not appear in 's schema will result in an exception being thrown, + but if true such values will be ignored + + + + Convenience constructor for role-mappings over the commonly used roles. Note that if any column name specified + is null or whitespace, it is ignored. + + The data over which roles are defined + The column name that will be mapped to the role + The column name that will be mapped to the role + The column name that will be mapped to the role + The column name that will be mapped to the role + The column name that will be mapped to the role + Any additional desired custom column role mappings + Whether to consider the column names specified "optional" or not. If false then any non-empty + values for the column names that does not appear in 's schema will result in an exception being thrown, + but if true such values will be ignored + + + + Base class for creating a cursor with default tracking of . All calls to + will be seen by subclasses of this cursor. For a cursor that has an input cursor and does not need notification on + , use instead. + + + + + Zero-based position of the cursor. + + + + + Convenience property for checking whether the current state of the cursor is one where data can be fetched. + + + + + Creates an instance of the class + + Channel provider + + + + Core implementation of , called if no prior call to this method + has returned . + + + + + Legacy method to get the column index. + DO NOT USE: use instead. + + + + + Base class for creating a cursor on top of another cursor that does not add or remove rows. + It forces one-to-one correspondence between items in the input cursor and this cursor. + It delegates all functionality except Dispose() to the root cursor. + Dispose is virtual with the default implementation delegating to the input cursor. + + + + + The synchronized cursor base, as it merely passes through requests for all "positional" calls (including + , , , and so forth), offers an opportunity + for optimization for "wrapping" cursors (which are themselves often + implementors) to get this root cursor. But, this can only be done by exposing this root cursor, as we do here. + Internal code should be quite careful in using this as the potential for misuse is quite high. + + + + + Convenience property for checking whether the cursor is in a good state where values + can be retrieved, that is, whenever is non-negative. + + + + + Convenient base class for implementors that wrap a single + as their input. The , , and + are taken from this . + + + + + The wrapped input row. + + + + + This override of the dispose method by default only calls 's + method, but subclasses can enable additional functionality + via the functionality. + + + + + + Called from with in the case where + that method has never been called before, and right after has been + disposed. The default implementation does nothing. + + Whether this was called through the dispose path, as opposed + to the finalizer path. + + + + The signature for commands. + + + + + A set of 'requirements' to the incoming schema, as well as a set of 'promises' of the outgoing schema. + This is more relaxed than the proper , since it's only a subset of the columns, + and also since it doesn't specify exact 's for vectors and keys. + + + + + The column name. + + + + + The type of the column: scalar, fixed vector or variable vector. + + + + + The 'raw' type of column item: must be a primitive type or a structured type. + + + + + The flag whether the column is actually a key. If yes, is representing + the underlying primitive type. + + + + + The annotations that are present for this column. + + + + + Returns whether is a valid input, if this object represents a + requirement. + + Namely, it returns true iff: + - The , , , fields match. + - The columns of of is a superset of our columns. + - Each such annotation column is itself compatible with the input annotation column. + + + + + Return if this structure is not identical to the default value of . If true, + it means this structure is initialized properly and therefore considered as valid. + + + + + Given a , extract the type parameters that describe this type + as a 's column type. + + The actual column type to process. + The vector kind of . + The item type of . + Whether (or its item type) is a key. + + + + Create a schema shape out of the fully defined schema. + + + + + Returns if there is a column with a specified and if so stores it in . + + + + + The 'data loader' takes a certain kind of input and turns it into an . + + The type of input the loader takes. + + + + Produce the data view from the specified input. + Note that 's are lazy, so no actual loading happens here, just schema validation. + + + + + The output schema of the loader. + + + + + Sometimes we need to 'fit' an . + A DataLoader estimator is the object that does it. + + + + + Train and return a data loader. + + + + + The 'promise' of the output schema. + It will be used for schema propagation. + + + + + The transformer is a component that transforms data. + It also supports 'schema propagation' to answer the question of 'how will the data with this schema look, after you transform it?'. + + + + + Schema propagation for transformers. + Returns the output schema of the data, if the input schema is like the one provided. + + + + + Take the data in, make transformations, output the data. + Note that 's are lazy, so no actual transformations happen here, just schema validation. + + + + + Whether a call to should succeed, on an + appropriate schema. + + + + + Constructs a row-to-row mapper based on an input schema. If + is false, then an exception should be thrown. If the input schema is in any way + unsuitable for constructing the mapper, an exception should likewise be thrown. + + The input schema for which we should get the mapper. + The row to row mapper. + + + + The estimator (in Spark terminology) is an 'untrained transformer'. It needs to 'fit' on the data to manufacture + a transformer. + It also provides the 'schema propagation' like transformers do, but over instead of . + + + + + Train and return a transformer. + + + + + Schema propagation for estimators. + Returns the output schema shape of the estimator, if the input schema shape is like the one provided. + + + + + This spells 'ML MODEL' with zero replacing space (assuming little endian). + + + + + Initialize the header and writer for writing. The value of fpMin and header + should be passed to the other utility methods here. + + + + + The current writer position should be the end of the model blob. Records the model size, writes the string table, + completes and writes the header, and writes the tail. + + + + + The current writer position should be where the tail belongs. Writes the header and tail. + Typically this isn't called directly unless you are doing custom string table serialization. + In that case you should have called EndModelCore before writing the string table information. + + + + + The current writer position should be the end of the model blob. Records the size of the model blob. + Typically this isn't called directly unless you are doing custom string table serialization. + + + + + Sets the version information the header. + + + + + Record the given loader sig in the header. If sig is null, clears the loader sig. + + + + + Record the given alternate loader sig in the header. If sig is null, clears the alternate loader sig. + + + + + Low level method for copying bytes from a header structure into a byte array. + + + + + Read the model header, strings, etc from reader. Also validates the header (throws if bad). + Leaves the reader position at the beginning of the model blob. + + + + + Finish reading. Checks that the current reader position is the end of the model blob. + Seeks to the end of the entire model file (after the tail). + + + + + Performs standard version validation. + + + + + Low level method for copying bytes from a byte array to a header structure. + + + + + Checks the basic validity of the header, assuming the stream is at least the given size. + Returns false (and the out exception) on failure. + + + + + Checks the validity of the header, reads the string table, etc. + + + + + Extract and return the loader sig from the header, trimming trailing zeros. + + + + + Extract and return the alternate loader sig from the header, trimming trailing zeros. + + + + + This is used to simplify version checking boiler-plate code. It is an optional + utility type. + + + + + Construct version info with a string value for modelSignature. The string must be 8 characters + all less than 0x100. Spaces are mapped to zero. This assumes little-endian. + + + + + This is a convenience context object for loading models from a repository, for + implementors of ICanSaveModel. It is not mandated but designed to reduce the + amount of boiler plate code. It can also be used when loading from a single stream, + for implementors of ICanSaveInBinaryFormat. + + + + + When in repository mode, this is the repository we're reading from. It is null when + in single-stream mode. + + + + + When in repository mode, this is the directory we're reading from. Null means the root + of the repository. It is always null in single-stream mode. + + + + + The main stream reader. + + + + + The strings loaded from the main stream's string table. + + + + + The name of the assembly that the loader lives in. + + + This may be null or empty if one was never written to the model, or is an older model version. + + + + + The main stream's model header. + + + + + The min file position of the main stream. + + + + + Exception context provided by Repository (can be null). + + + + + Returns whether this context is in repository mode (true) or single-stream mode (false). + + + + + Create a ModelLoadContext supporting loading from a repository, for implementors of ICanSaveModel. + + + + + Create a ModelLoadContext supporting loading from a single-stream, for implementors of ICanSaveInBinaryFormat. + + + + + Performs version checks. + + + + + Reads an integer from the load context's reader, and returns the associated string, + or null (encoded as -1). + + + + + Reads an integer from the load context's reader, and returns the associated string. + + + + + Reads an integer from the load context's reader, and returns the associated string. + Throws if the string is empty or null. + + + + + Commit the load operation. This completes reading of the main stream. When in repository + mode, it disposes the Reader (but not the repository). + + + + + When in repository mode, this disposes the Reader (but no the repository). + + + + + Returns the new assembly name to maintain backward compatibility. + + + + + Return whether this context contains a directory and stream for a sub-model with + the indicated name. This does not attempt to load the sub-model. + + + + + Load an optional object from the repository directory. + Returns false iff no stream was found for the object, iff result is set to null. + Throws if loading fails for any other reason. + + + + + Load an object from the repository directory. + + + + + Load a sub model from the given sub directory if it exists. This requires InRepository to be true. + Returns false iff no stream was found for the object, iff result is set to null. + Throws if loading fails for any other reason. + + + + + Load a sub model from the given sub directory. This requires InRepository to be true. + + + + + Try to load from the given repository entry using the default loader(s) specified in the header. + Returns false iff the default loader(s) could not be bound to a compatible loadable class. + + + + + Load from the given repository entry using the default loader(s) specified in the header. + + + + + Try to load from the given stream (non-Repository). + Returns false iff the default loader(s) could not be bound to a compatible loadable class. + + + + + Load from the given stream (non-Repository) using the default loader(s) specified in the header. + + + + + Try to load from the given reader (non-Repository). + Returns false iff the default loader(s) could not be bound to a compatible loadable class. + + + + + Load from the given reader (non-Repository) using the default loader(s) specified in the header. + + + + + Tries to load. + Returns false iff the default loader(s) could not be bound to a compatible loadable class. + + + + + Try to load a sub model from the given sub directory. This requires InRepository to be true. + + + + + Try to load a binary stream from the current directory. This requires InRepository to be true. + + + + + Try to load a text stream from the current directory. This requires InRepository to be true. + + + + + Signature for a repository based model loader. This is the dual of . + + + + + Convenience context object for saving models to a repository, for + implementors of . + + + This class reduces the amount of boiler plate code needed to implement . + It can also be used when saving to a single stream, for implementors of . + + + + + When in repository mode, this is the repository we're writing to. It is null when + in single-stream mode. + + + + + When in repository mode, this is the directory we're reading from. Null means the root + of the repository. It is always null in single-stream mode. + + + + + The main stream writer. + + + + + The strings that will be saved in the main stream's string table. + + + + + The main stream's model header. + + + + + The min file position of the main stream. + + + + + The wrapped entry. + + + + + Exception context provided by Repository (can be null). + + + + + The assembly name where the loader resides. + + + + + Returns whether this context is in repository mode (true) or single-stream mode (false). + + + + + Create a supporting saving to a repository, for implementors of . + + + + + Create a supporting saving to a single-stream, for implementors of . + + + + + Set the version information in the main stream's header. This should be called before + is called. + + + + + + Puts a string into the context pool, and writes the integer code of the string ID + to the write stream. If str is null, this writes -1 and doesn't add it to the pool. + + + + + Puts a string into the context pool, and writes the integer code of the string ID + to the write stream. Checks that str is not null. + + + + + Puts a string into the context pool, and writes the integer code of the string ID + to the write stream. + + + + + Commit the save operation. This completes writing of the main stream. When in repository + mode, it disposes (but not ). + + + + + When in repository mode, this disposes the Writer (but not the repository). + + + + + Save a sub model to the given sub directory. This requires to be . + + + + + Save the object by calling TrySaveModel then falling back to .net serialization. + + + + + Save to a single-stream by invoking the given action. + + + + + Save to the given sub directory by invoking the given action. This requires + to be . + + + + + For saving a model into a repository. + Classes implementing should do an explicit implementation of . + Classes inheriting from a base class should overwrite the function invoked by + in that base class, if there is one. + + + + + For saving to a single stream. Note that this interface is mostly deprecated in favor of + saving more comprehensive and composable "model" objects, via . + + + + + Abstraction around a or other hierarchical storage. + + + + + The relative path of this entry. + /// + + + + The stream for this entry. This is either a memory stream or a file stream in + the temporary directory. In either case, it is seekable and NOT the actual + archive stream. + + + + + Exception context. + + + + + Force all open entries to be disposed. + + + + + Remove the entry from _open. Note that under normal access patterns, entries are LIFO, + so we search from the end of _open. + + + + + The entry is being disposed. Note that overrides should always call RemoveEntry, in addition to whatever + they need to do with the corresponding stream. + + + + + When considering entries inside one of our model archives, we want to ensure that we + use a consistent directory separator. Zip archives are stored as flat lists of entries. + When we load those entries into our look-up dictionary, we normalize them to always use + backward slashes. + + + + + When building paths to our local file system, we want to force both forward and backward slashes + to the system directory separator character. We do this for cases where we either used Windows-specific + path building logic, or concatenated filesystem paths with zip archive entries on Linux. + + + + + Constructs both the relative path to the entry and the absolute path of a corresponding + temporary file. If createDir is true, makes sure the directory exists within the temp directory. + + + + + Commit the writing of the repository. This signals successful completion of the write. + + + + + This is a signature for classes that are 'holders' of entry points and components. + + + + + A simplified assembly attribute for marking EntryPoint modules. + + + + + Performs checks on an EntryPoint input class equivalent to the checks that are done + when parsing a JSON EntryPoint graph. + + Call this method from EntryPoint methods to ensure that range and required checks are performed + in a consistent manner when EntryPoints are created directly from code. + + + + + Searches for the given column name in the schema. This method applies a + common policy that throws an exception if the column is not found + and the column name was explicitly specified. If the column is not found + and the column name was not explicitly specified, it returns null. + + + + + Converts EntryPoint Optional{T} types into nullable types, with the + implicit value being converted to the null value. + + + + + This class defines attributes to annotate module inputs, outputs, entry points etc. when defining + the module interface. + + + + + An attribute used to annotate the component. + + + + + The load name of the component. Must be unique within its kind. + + + + + UI friendly name. Can contain spaces and other forbidden for Name symbols. + + + + + Alternative names of the component. Each alias must also be unique in the component's kind. + + + + + Comma-separated . + + + + + Description of the component. + + + + + This should indicate a name of an embedded resource that contains detailed documents + for the component, for example, markdown document with the .md extension. The embedded resource + is assumed to be in the same assembly as the class on which this attribute is ascribed. + + + + + An attribute used to annotate the signature interface. + Effectively, this is a way to associate the signature interface with a user-friendly name. + + + + + An attribute used to annotate the kind of entry points. + Typically it is used on the input classes. + + + + + An attribute used to annotate the outputs of the module. + + + + + Official name of the output. If it is not specified, the field name is used. + + + + + The description of the output. + + + + + The rank order of the output. Because .NET reflection returns members in an unspecified order, this + is the only way to ensure consistency. + + + + + An attribute to indicate that a field is optional in an EntryPoint module. + A node can be run without optional input fields. + + + + + An attribute used to annotate the valid range of a numeric input. + + + + + The target type of this range attribute, as determined by the type of + the set range bound values. + + + + + An inclusive lower bound of the value. + + + + + An inclusive upper bound of the value. + + + + + An exclusive lower bound of the value. + + + + + An exclusive upper bound of the value. + + + + + An attribute used to indicate suggested sweep ranges for parameter sweeping. + + + + + An attribute used to indicate suggested sweep ranges for discrete parameter sweeping. + The value is the index of the option chosen. Use Options[Value] to get the corresponding + option using the index. + + + + + An attribute used to indicate suggested sweep ranges for float parameter sweeping. + + + + + An attribute used to indicate suggested sweep ranges for long parameter sweeping. + + + + + An attribute to mark an entry point of a module. + + + + + The entry point name. + + + + + The entry point description. + + + + + UI friendly name. Can contain spaces and other forbidden for Name symbols. + + + + + Short name of the Entry Point + + + + + The list of data types that are supported as inputs or outputs. + + + + + Not used. + + + + + Integer, including long. + + + + + Unsigned integer, including ulong. + + + + + Floating point, including double. + + + + + A char. + + + + + A string. + + + + + A boolean value. + + + + + A dataset, represented by an . + + + + + A file handle, represented by an . + + + + + A transform model, represented by an . + + + + + A predictor model, represented by an . + + + + + An enum: one value of a specified list. + + + + + An array (0 or more values of the same type, accessible by index). + + + + + A dictionary (0 or more values of the same type, identified by a unique string key). + The underlying C# representation is + + + + + A component of a specified kind. The component is identified by the "load name" (unique per kind) and, + optionally, a set of parameters, unique to each component. Example: "BinaryClassifierEvaluator{threshold=0.5}". + The C# representation is . + + + + + The untyped base class for 'maybe'. + + + + + Whether the value was set 'explicitly', or 'implicitly'. + + + + + This is a 'maybe' class that is able to differentiate the cases when the value is set 'explicitly', or 'implicitly'. + The idea is that if the default value is specified by the user, in some cases it needs to be treated differently + than if it's auto-filled. + + An example is the weight column: the default behavior is to use 'Weight' column if it's present. But if the user explicitly sets + the weight column to be 'Weight', we need to actually enforce the presence of the column. + + The type of the value + + + + Create the 'implicit' value. + + + + + The implicit conversion into . + + + + + The implicit conversion from . + This will assume that the parameter is set 'explicitly'. + + + + + Base type for standard predictor model port type. + + + + + Save the model to the given stream. + + + + + Extract only the transform portion of the predictor model. + + + + + Extract the predictor object out of the predictor model. + + + + + Apply the predictor model to the transform model and return the resulting predictor model. + + + + + For a given input data, return role mapped data and the predictor object. + The scoring entry point will hopefully know how to construct a scorer out of them. + + + + + Returns a string array containing the label names of the label column type predictor was trained on. + If the training label is a key with text key value annotation, it should return this annotation. The order of the labels should be consistent + with the key values. Otherwise, it returns null. + + + The column type of the label the predictor was trained on. + + + + Returns the that was used in training. + + + + + Interface for standard transform model port type. + + + + + The input schema that this transform model was originally instantiated on. + Note that the schema may have columns that aren't needed by this transform model. + If an exists with this schema, then applying this transform model to it + shouldn't fail because of column type issues. + + + + + The output schema that this transform model was originally instantiated on. The schema resulting + from may differ from this, similarly to how + may differ from the schema of dataviews we apply this transform model to. + + + + + Apply the transform(s) in the model to the given input data. + + + + + Apply the transform(s) in the model to the given transform model. + + + + + Save the model to the given stream. + + + + + Returns the transform model as an that can output a row + given a row with the same schema as . + + The transform model as an . If not all transforms + in the pipeline are then it returns . + + + + A telemetry message. + + + + + Message with one long text and bunch of small properties (limit on value is ~1020 chars) + + + + + Message with exception + + + + + Message with metric value and it properites + + + + + Type of prediction task. Note that this is a legacy structure and usage of this should generally be + discouraged in future projects. Its presence suggests that there are privileged and supported + tasks, and anything outside of this is unsupported. This runs rather contrary to the idea of this + being an expandable framework, and it is inappropriately limiting. For legacy pipelines based on + and it is still useful, but for things based on + the idiom, it is inappropriate. + + + + + Weakly typed version of IPredictor. + + + + + Return the type of prediction task. + + + + + A predictor the produces values of the indicated type. + REVIEW: Determine whether this is just a temporary shim or long term solution. + + + + + A predictor that produces values and distributions of the indicated types. + Note that from a public API perspective this is bad. + + + + + Loadable class signatures for trainers. Typically each trainer should register with + both SignatureTrainer and SignatureXxxTrainer where Xxx is the prediction kind. + + + + + The base interface for a trainers. Implementors should not implement this interface directly, + but rather implement the more specific . + + + + + Auxiliary information about the trainer in terms of its capabilities + and requirements. + + + + + Return the type of prediction task for the produced predictor. + + + + + Trains a predictor. + + A context containing at least the training data + The trained predictor + + + + + Strongly typed generic interface for a trainer. A trainer object takes training data + and produces a predictor. + + Type of predictor produced + + + + Trains a predictor. + + A context containing at least the training data + The trained predictor + + + + Convenience train extension for the case where one has only a training set with no auxiliary information. + Equivalent to calling + on a constructed with . + + The trainer + The training data. + The trained predictor + + + + Convenience train extension for the case where one has only a training set with no auxiliary information. + Equivalent to calling + on a constructed with . + + The trainer + The training data. + The trained predictor + + + + Predictor that has ensemble tree structures and returns collection of trees. + + + + + Returns the number of trees in the ensemble. + + + + + Returns the collection of trees. + + Collection of trees + + + + Type of tree used in ensemble of tree based predictors + + + + + Returns the array of right(Greater than) child nodes of every interior nodes + + + + + Returns the array of left(Leser than or equal to) nodes of every interior nodes + + + + + returns the number of interior nodes. + + + + + Returns the number of leaf nodes. + + + + + Returns node structure for the given node + + Node id + Flag to denote whether the node is leaf or not + Feature names collection + Node structure + + + + Type of tree used in ensemble of tree based predictors + + Type of features container (instance) on which to make predictions + + + + Returns the leaf node for the given instance. + + Type of features container (instance) on which to make predictions + node id + Type of features container (instance) on which to make predictions + + + + Type to represent the structure of node + + + + + Returns Key value pairs representing the properties of the node. + + + + + Keys to represent the properties of node. + + + + + Name of the the interior node. It is Feature name if it is fasttree. Type is string for default trees. + + + + + Split gain of the interior node. Type is double for default trees. + + + + + Threshold value of the interior node. Type is string for default trees. + It is expected that the string has exactly two space separated components. + i. The first one should be the operator + ii. The second one should be the actual threshold + For ex., for a split like f1 <= 10, expected Threshold is "<= 10" + For a split like color not-in { blue, green }, expected Threshold is "not-in { blue, green }" + + + + + Gain value (specific to fasttree) of the interior node. Type is double for default trees. + + + + + Previous leaf value(specific to fasttree) of the interior node. Type is double for default trees. + + + + + Leaf value of the leaf node. Type is double for default trees. + + + + + Extra items that will be displayed in the tool-tip. Type is string for default trees. + + + + + Holds information relevant to trainers. Instances of this class are meant to be constructed and passed + into or . + This holds at least a training set, as well as optionally a predictor. + + + + + The training set. Cannot be null. + + + + + The validation set. Can be null. Note that passing a non-null validation set into + a trainer that does not support validation sets should not be considered an error condition. It + should simply be ignored in that case. + + + + + The test set, whose uses are very similar to validation set but it should not directly and indirectly + affect the training process. One major difference between validation set and test test is that validation + can affect the training process by, for example, early stopping. Note that early stopping is a technique + which terminates the training process once the scores computed on validation set starts getting worse. + + + + + The initial predictor, for incremental training. Note that if a implementor + does not support incremental training, then it can ignore it similarly to how one would ignore + . However, if the trainer does support incremental training and there + is something wrong with a non-null value of this, then the trainer ought to throw an exception. + + + + + Constructor, given a training set and optional other arguments. + + Will set to this value. This must be specified + Will set to this value if specified + Will set to this value if specified + Will set to this value if specified + + + + Characteristics of a trainer. Exposed via the Info property of each trainer. + + + + + Whether the trainer needs to see data in normalized form. Only non-parametric trainers will tend to return + here. + + + + + Whether the trainer needs calibration to produce probabilities. As a general rule only trainers that produce + binary classifier predictors that also do not have a natural probabilistic interpretation should have a + value here. + + + + + Whether this trainer could benefit from a cached view of the data. Trainers that have few passes over the + data, or that need to build their own custom data structure over the data, will have a false here. + + + + + Whether the trainer supports validation set via . Not implementing + this interface and returning false from this property is an indication the trainer does not support + that. + + + + + Whether the trainer can use test set via . Not implementing + this interface and returning false from this property is an indication the trainer does not support + that. + + + + + Whether the trainer can support incremental trainers via . Not + implementing this interface and returning true from this property is an indication the trainer does + not support that. + + + + + Initializes with the given parameters. The parameters have default values for the most typical values + for most classical trainers. + + The value for the property + The value for the property + The value for the property + The value for the property + The value for the property + The value for the property + + + + Akin to FindIndexSorted, except stores the found index in the output + index parameter, and returns whether that index is a valid index + pointing to a value equal to the input parameter value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + An array-like data structure that supports storing more than + many entries, up to 0x7FEFFFFF00000L. + The entries are indexed by 64-bit integers, and a single entry can be accessed by + the indexer if no modifications to the entries is desired, or the + method. Efficient looping can be accomplished by calling the method. + This data structure employs the "length and capacity" pattern. The logical length + can be retrieved from the property, which can possibly be strictly less + than the total capacity. + + The type of entries. + + + + Gets the logical length of the big array. + + + + + Gets or sets the entry at . + + + This indexer is not efficient for looping. If looping access to entries is desired, + use the method instead. + Note that unlike a normal array, the value returned from this indexer getter cannot be modified + (for example, by ++ operator or passing into a method as a ref parameter). To modify an entry, use + the method instead. + + + + + Initializes a new instance of the class with a specified size. + + + + + Applies a method at a given . + + + + + Implements a more efficient way to loop over index range in [min, lim) and apply + the specified method delegate. + + + + + Fills the entries with index in [min, lim) with the given value. + + + + + Resizes the array so that its logical length equals . This method + is more efficient than initialize another array and copy the entries because it preserves + existing blocks. The actual capacity of the array may become larger than . + If equals , then no operation is done. + If is less than , the array shrinks in size + so that both its length and its capacity equal . + If is larger than , the array capacity grows + to the smallest integral multiple of that is larger than , + unless is less than , in which case the capacity + grows to double its current capacity or , which ever is larger, + but up to . + + + + + Trims the capacity to logical length. + + + + + Appends the elements of to the end. + This method is thread safe related to calls to (assuming those copy operations + are happening over ranges already added), but concurrent calls to + should not be attempted. Intended usage is that + one thread will call this method, while multiple threads may access + previously added ranges from , concurrently with + this method or themselves. + + + + + Copies the subarray starting from index of length + to the destination array . + Concurrent calls to this method is valid even with one single concurrent call + to . + + + + + This should normally be just (a + b) / 2, except in one interesting case: + If a and b are 'consecutive' floats (they differ only in the least significant bit), + the above expression is possible to be rounded to a. + This can lead to bin bounds that are not strictly increasing! + Also note that the simple (a + b) / 2 can overflow, that's the reason for a / 2 + b / 2. + + + + + This should normally be just (a + b) / 2, except in one interesting case: + If a and b are 'consecutive' floats (they differ only in the least significant bit), + the above expression is possible to be rounded to a. + This can lead to bin bounds that are not strictly increasing! + Also note that the simple (a + b) / 2 can overflow, that's the reason for a / 2 + b / 2. + + + + + Initial placement of the pegs. + Places pegs one by one and always picks the largest existing segment to split. + + + + + Gets the best split for a peg between min and max. + In case of a tie, use 'pos' to pick the location closer to the more natural split. + + + + + Computes the energy reduction for splitting segment [min, max] at 'split' point + + + + + Returns true if 'i' is a better peg placement than 'j', which means it is closer to the ideal position for peg 'pos' + + + + + After the initial peg placement, + + + + + For the remaining bins, compute the best energy distribution and the worst energy distribution + The best energy distribution: + - make the distances as equal as possible; + - some of them will be 'ave' and the rest will be 'ave+1' + The worst energy distribution: + - all except one distance will be 1 + + + + + Environment variable containing optional resources path. + + + + + Attempts to find a file that is expected to be distributed with a TLC component. Searches + in the following order: + 1. In the customSearchDir directory, if it is provided. + 2. In the custom search directory specified by the + environment variable. + 3. In the root folder of the provided assembly. + 4. In the folder of this assembly. + In each case it searches the file in the directory provided and combined with folderPrefix. + + If any of these locations contain the file, a full local path will be returned, otherwise this + method will return null. + + File name to find + folder prefix, relative to the current or customSearchDir + + Custom directory to search for resources. + If null, the path specified in the environment variable + will be used. + + + Assembly type to search the path of. + + + Path to the existing file. Null if not found. + + + + + Given a folder path, create it if it doesn't exist. + Fails if the folder name is empty, or can't create the folder. + + + + + Similar to Stream.CopyTo but takes a length rather than assuming copy to end. Returns amount copied. + + Source stream to copy from + Destination stream to copy to + Number of bytes to copy + Size of buffer to use when copying, default is 81920 to match that of Stream + number of bytes copied + + + + Writes a length prefixed span of ints. + + + + + Writes a span of ints without the length prefix. + + + + + Writes a length prefixed span of uints. + + + + + Writes a span of uints without the length prefix. + + + + + Writes a length prefixed array of bytes. + + + + + Writes a length prefixed span of bytes. + + + + + Writes a length prefixed array of bytes. + + + + + Writes an array of bytes without the length prefix. + + + + + Writes a length prefixed span of Floats. + + + + + Writes a length prefixed array of Floats. + + + + + Writes a span of Floats without the length prefix. + + + + + Writes a length prefixed span of doubles. + + + + + Writes a span of doubles without the length prefix. + + + + + Writes a length prefixed span of bools as bytes with 0/1 values. + + + + + Writes a span of bools as bytes with 0/1 values, without the length prefix. + + + + + Writes a length prefixed span of chars. + + + + + Writes a length prefixed array of packed bits. + + + + + Writes what Microsoft calls a UTF-7 encoded number in the binary reader and + writer string methods. For non-negative integers this is equivalent to LEB128 + (see https://en.wikipedia.org/wiki/LEB128). + + + + + The number of bytes that would be written if one were to attempt to write + the value in LEB128. + + + + + If this return it will read exactly length bytes, and unlike the + regular read method fails if it cannot. + + The stream + The buffer into which to write the data. + The offset of the output array into which to write. + The number of bytes to read. + + + + If this return it will try to read exactly length bytes. + + The stream + The buffer into which to write the data. + The offset of the output array into which to write. + The number of bytes to read. + + + + Reads a LEB128 encoded unsigned integer. + + + + + A convenience method to open a stream writer, by default with no-BOM UTF-8 encoding, + buffer size of 1K, and the stream left open. + + + + + Checks that the directory of the file name passed in already exists. + This is meant to be called before calling an API that creates the file, + so the file need not exist. + + An absolute or relative file path, or null to skip the check + (useful for optional user parameters) + The user level parameter name, as exposed by the command line help + + + + Naive thread pool focused on reducing the latency to execution of chunky work items as much as possible. + If a thread is ready to process a work item the moment a work item is queued, it's used, otherwise + a new thread is created. This is meant as a stop-gap measure for workloads that would otherwise be + creating a new thread for every work item. + + + + How long should threads wait around for additional work items before retiring themselves. + + + The queue of work items. Also used as a lock to protect all relevant state. + + + The number of threads currently waiting for work to arrive. + + + + Queues an delegate to be executed immediately on another thread, + and returns a that represents its eventual completion. The task will + always end in the state; if the delegate throws + an exception, it'll be allowed to propagate on the thread, crashing the process. + + + + + Queues an delegate and associated state to be executed immediately on another thread, + and returns a that represents its eventual completion. The task will + always end in the state; if the delegate throws + an exception, it'll be allowed to propagate on the thread, crashing the process. + + + + + Copies the values from src to dst. + + + This can be removed once we have the APIs from https://github.com/dotnet/corefx/issues/33006. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Akin to FindIndexSorted, except stores the found index in the output + index parameter, and returns whether that index is a valid index + pointing to a value equal to the input parameter value. + + + + + Akin to FindIndexSorted, except stores the found index in the output + index parameter, and returns whether that index is a valid index + pointing to a value equal to the input parameter value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Finds the unique index for which func(input[i]) == false whenever i < index and + func(input[i]) == true whenever i >= index. + Callers should guarantee that there is such an index. Uses binary search. + + + + + Finds the unique index for which func(input[i], value) == false whenever i < index and + func(input[i], value) == true whenever i >= index. + Callers should guarantee that there is such an index. Uses binary search. + + + + + Checks that an input IList is monotonically increasing. + + An array of values + True if the array is monotonically increasing (if each element is greater + than or equal to previous elements); false otherwise. ILists containing NaN values + are considered to be not monotonically increasing. + + + + Checks that an input array is monotonically increasing. + + An array of values + True if the array is monotonically increasing (if each element is greater + than or equal to previous elements); false otherwise. + + + + Checks that an input array is monotonically increasing. + + An array of values + True if the array is monotonically increasing (if each element is greater + than or equal to previous elements); false otherwise. Arrays containing NaN values + are considered to be not monotonically increasing. + + + + Returns whether an input integer vector is sorted and unique, + and between an inclusive lower and exclusive upper bound for + the first and last items, respectively. + + + + + Returns whether an input integer vector up to + is sorted and unique, and between an inclusive lower and exclusive + upper bound for the first and last items, respectively. + + + + + Create an array of specified length, filled with a specified value + + + + + Given a predicate, over a range of values defined by a limit calculate + first the values for which that predicate was true, and second an inverse + map. + + The input schema where the predicate can check if columns are active. + The predicate to test for various value + An ascending array of values from 0 inclusive + to exclusive, holding all values for which + is true + Forms an inverse mapping of , + so that [[i]] == i, + and for other entries not appearing in , + [i] == -1 + + + + Given a predicate, over a range of values defined by a limit calculate + first the values for which that predicate was true, and second an inverse + map. + + Indicates the exclusive upper bound on the tested values + The predicate to test for various value + An ascending array of values from 0 inclusive + to exclusive, holding all values for which + is true + Forms an inverse mapping of , + so that [[i]] == i, + and for other entries not appearing in , + [i] == -1 + + + + Given the columns needed, over a range of values defined by a limit calculate + first the values for which the column is present was true, and second an inverse + map. + + Indicates the exclusive upper bound on the tested values + The set of columns the calling component operates on. + An ascending array of values from 0 inclusive + to exclusive, holding all values for which + are present. + (The respective index appears in the collection). + Forms an inverse mapping of , + so that [[i]] == i, + and for other entries not appearing in , + [i] == -1 + + + + Resizes the array if necessary, to ensure that it has at least elements. + + The array to resize. Can be null. + The minimum number of items the new array must have. + True means that the old array is preserved, if possible (Array.Resize is called). False + means that a new array will be allocated. + + The new size, that is no less than . + + + + Resizes the array if necessary, to ensure that it has at least and at most elements. + + The array to resize. Can be null. + The minimum number of items the new array must have. + The maximum number of items the new array can have. + True means that the old array is preserved, if possible (Array.Resize is called). False + means that a new array will be allocated. + + The new size, that is no less than and no more that . + + + + Returns the number of set bits in a bit array. + + + + + Given a generic method with a single type parameter, re-create the generic method on a new type, + then reinvoke the method and return the result. A common pattern throughout the code base is to + have some sort of generic method, whose parameters and return value are, as defined, non-generic, + but whose code depends on some sort of generic type parameter. This utility method exists to make + this common pattern more convenient, and also safer so that the arguments, if any, can be type + checked at compile time instead of at runtime. + + Because it is strongly typed, this can only be applied to methods whose return type + is known at compile time, that is, that do not depend on the type parameter of the method itself. + + The type of the receiver of the instance method. + The type of the return value of the method. + A delegate that should be a generic method with a single type parameter. + The generic method definition will be extracted, then a new method will be created with the + given type parameter, then the method will be invoked. + The target of the invocation. + The new type parameter for the generic method + The return value of the invoked function + + + + A static version of . + + + + + A one-argument version of . + + + + + A one-argument version of . + + + + + A one-argument, three-type-parameter version of . + + + + + A one-argument, three-type-parameter version of . + + + + + A two-argument version of . + + + + + A two-argument version of . + + + + + A two-argument, two-type-parameter version of . + + + + + A two-argument, two-type-parameter version of . + + + + + A two-argument, three-type-parameter version of . + + + + + A two-argument, three-type-parameter version of . + + + + + A three-argument version of . + + + + + A four-argument version of . + + + + + A five-argument version of . + + + + + A six-argument version of . + + + + + A seven-argument version of . + + + + + An eight-argument version of . + + + + + A nine-argument version of . + + + + + A ten-argument version of . + + + + + This is akin to , except applied to + instead of . + + A delegate that should be a generic method with a single type parameter. + The generic method definition will be extracted, then a new method will be created with the + given type parameter, then the method will be invoked. + The new type parameter for the generic method + + + + A one-argument version of . + + + + + A two-argument version of . + + + + + A three-argument version of . + + + + + A four-argument version of . + + + + + Get indented version of command line or same string if we unable to produce it. + + command line + indented version of command line(if possible) + + + + Try produce indented string for command line. + + command line + indenting text writer + true if we was able to produce indented string without any problem + + + + Result codes from Parse methods. Note that the order matters. + + + + + No issues. + + + + + Empty or only whitespace + + + + + Extra non-whitespace characters after successful parse + + + + + Parsing error + + + + + This produces zero for an empty string, or NaN depending on the used. + + + + + This produces zero for an empty string, or NaN depending on the used. + + + + + A fixed-length circular array. Items are added at the end. If the array is full, adding + an item will result in discarding the least recently added item. + + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is an instance method on an object of type . + One generic type argument. + A return value of . + + + The type of the receiver of the instance method. + The type of the return value of the method. + + + + Creates a representing the for + a generic instance method. This helper method allows the instance to be created prior to the creation of any + instances of the target type. The following example shows the creation of an instance representing the + method: + + + FuncInstanceMethodInfo1<object, int>.Create(obj => obj.GetHashCode) + + + The expression which creates the delegate for an instance of the target type. + A representing the + for the generic instance method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is an instance method on an object of type . + One generic type argument. + A return value of . + + + The type of the receiver of the instance method. + The type of the parameter of the method. + The type of the return value of the method. + + + + Creates a representing the + for a generic instance method. This helper method allows the instance to be created prior to the creation of + any instances of the target type. The following example shows the creation of an instance representing the + method: + + + FuncInstanceMethodInfo1<object, object, int>.Create(obj => obj.Equals) + + + The expression which creates the delegate for an instance of the target type. + A representing the + for the generic instance method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is an instance method on an object of type . + One generic type argument. + A return value of . + + + The type of the receiver of the instance method. + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Creates a representing the + for a generic instance method. This helper method allows the instance to be created prior to the creation of + any instances of the target type. The following example shows the creation of an instance representing the + method: + + + FuncInstanceMethodInfo1<object, object, int>.Create(obj => obj.Equals) + + + The expression which creates the delegate for an instance of the target type. + A representing the + for the generic instance method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is an instance method on an object of type . + Two generic type arguments. + A return value of . + + + The type of the receiver of the instance method. + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Creates a representing the + for a generic instance method. This helper method allows the instance to be created prior to the creation of + any instances of the target type. The following example shows the creation of an instance representing the + method: + + + FuncInstanceMethodInfo1<object, object, int>.Create(obj => obj.Equals) + + + The expression which creates the delegate for an instance of the target type. + A representing the + for the generic instance method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is an instance method on an object of type . + Three generic type arguments. + A return value of . + + + The type of the receiver of the instance method. + The type of the parameter of the method. + The type of the return value of the method. + + + + Creates a representing the + for a generic instance method. This helper method allows the instance to be created prior to the creation of + any instances of the target type. The following example shows the creation of an instance representing the + method: + + + FuncInstanceMethodInfo1<object, object, int>.Create(obj => obj.Equals) + + + The expression which creates the delegate for an instance of the target type. + A representing the + for the generic instance method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is an instance method on an object of type . + Three generic type arguments. + A return value of . + + + The type of the receiver of the instance method. + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Creates a representing the + for a generic instance method. This helper method allows the instance to be created prior to the creation of + any instances of the target type. The following example shows the creation of an instance representing the + method: + + + FuncInstanceMethodInfo1<object, object, int>.Create(obj => obj.Equals) + + + The expression which creates the delegate for an instance of the target type. + A representing the + for the generic instance method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + One generic type argument. + A return value of . + + + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + One generic type argument. + A return value of . + + + The type of the parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + One generic type argument. + A return value of . + + + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + Two generic type arguments. + A return value of . + + + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + Three generic type arguments. + A return value of . + + + The type of the parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + Three generic type arguments. + A return value of . + + + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is static. + One generic type argument. + A return value of . + + + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is static. + One generic type argument. + A return value of . + + + The type of the parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is static. + One generic type argument. + A return value of . + + + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is static. + Two generic type arguments. + A return value of . + + + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is static. + Three generic type arguments. + A return value of . + + + The type of the parameter of the method. + The type of the return value of the method. + + + + Represents the for a generic function corresponding to , + with the following characteristics: + + + The method is static. + Three generic type arguments. + A return value of . + + + The type of the first parameter of the method. + The type of the second parameter of the method. + The type of the return value of the method. + + + + A Hash Array that implements both val -> index lookup and index -> val lookup. + Also implements memory efficient sorting. + Note: Supports adding and looking up of items but does not support removal of items. + + + + + Find the index of the given val in the hash array. + Returns a bool representing if val is present. + Index outputs the index that the val is at in the array, -1 otherwise. + + + + + Make sure the given value has an equivalent TItem in the hashArray + and return the index of the value. + + + + + Make sure the given value has an equivalent TItem in the hashArray + and return the index of the value. + + + + + Adds the value as a TItem. Does not check whether the TItem is already present. + Returns the index of the added value. + + + + + Appropriately fills _rgnext and _rgit based on _rgt and _rghash. + + + + + Copies all items to the passed in span. Requires the passed in span to be at least the + same length as Count. + + + + + Creates a combined hash of possibly heterogeneously typed values. + + The leading hash, incorporated into the final hash + A variable list of objects, where null is a valid value + The combined hash incorporating a starting hash, and the hash codes + of all input values + + + + Creates a combined hash of multiple homogeneous typed non-null values. + + The type of items to hash + The leading hash, incorporated into the final hash + A variable list of non-null values + The combined hash incorporating a starting hash, and the hash codes + of all input values + + + + Hash the characters in a of . + This MUST produce the same result as the other overloads (with equivalent characters). + + + + + Hash the characters in a string builder. This MUST produce the same result + as HashString(sb.ToString()). + + + + + Combines the given hash value with a uint value, using the murmur hash 3 algorithm. + Make certain to also use or on the final hashed value, + if you depend upon having distinct bits. + + + + + Implements the murmur hash 3 algorithm, using a mock UTF-8 encoding. + The UTF-8 conversion ignores the possibilities of unicode planes other than the 0th. + That is, it simply converts char values to one, two, or three bytes according to + the following rules: + * 0x0000 to 0x007F : 0xxxxxxx + * 0x0080 to 0x07FF : 110xxxxx 10xxxxxx + * 0x0800 to 0xFFFF : 1110xxxx 10xxxxxx 10xxxxxx + NOTE: This MUST match the StringBuilder version below. + + + + + Implements the murmur hash 3 algorithm, using a mock UTF-8 encoding. + The UTF-8 conversion ignores the possibilities of unicode planes other than the 0th. + That is, it simply converts char values to one, two, or three bytes according to + the following rules: + * 0x0000 to 0x007F : 0xxxxxxx + * 0x0080 to 0x07FF : 110xxxxx 10xxxxxx + * 0x0800 to 0xFFFF : 1110xxxx 10xxxxxx 10xxxxxx + NOTE: This MUST match the string version above. + + + + + Performs a MurmurRound on each int in the sequence + + + + + The final mixing ritual for the Murmur3 hashing algorithm. Most users of + will want to close their progressive building of + a hash with a call to this method. + + + + + Implements a heap. + + + + + A Heap structure gives efficient access to the ordered next element. + + A delegate that takes two T objects, and if + it returns true then the second object should be popped before the first + + + + A Heap structure gives efficient access to the ordered next element. + + A delegate that takes two T objects, and if + it returns true then the second object should be popped before the first + The initial capacity of the heap + + + Func tests true if first element should be after the second + + + + + Current count of elements remaining in the heap + + + + + Discard all elements currently in the heap + + + + + Peek at the first element in the heap + + + + + Remove and return the first element in the heap + + The first element in the heap + + + + Add a new element to the heap + + The item to add + + + + For the heap to allow deletion, the heap node has to derive from this class. + + + + + Implements a heap. + + + + + A Heap structure gives efficient access to the ordered next element. + + A delegate that takes two T objects, and if + it returns true then the second object should be popped before the first + + + + A Heap structure gives efficient access to the ordered next element. + + A delegate that takes two T objects, and if + it returns true then the second object should be popped before the first + The initial capacity of the heap + + + Func tests true if first element should be after the second + + + + + Current count of elements remaining in the heap + + + + + Remove all elements currently in the heap + + + + + Peek at the first element in the heap + + + + + Remove and return the first element in the heap + + + + + Add a new element to the heap + + + + + Remove an element from the heap + + + + + This is a read-write stream that, at or below a length threshold given in the constructor, + works purely in memory, but if it ever grows larger than that point backs off to use the + file system. This can be useful if we have intermediate operations that require streams. + The temporary file will be destroyed if the object is properly disposed. + + + + + Constructs an initially empty read-write stream. Once the number of + bytes in the stream exceeds , + then we back off to disk. + + The maximum length we will accommodate in memory + + + + A common usecase of the hybrid memory stream is to create a persistent + readable (not necessarily writable) copy of a stream whose source is very + transient and temporary. This utility method makes that creation of a copy + somewhat easier. + + A stream that can be opened + The maximum length we will accommodate in memory + A readable copy of the data stream + + + + Creates the overflow stream if it does not exist, switching all content over to + the file-based stream and disposing of the memory stream. If the overflow stream + already exists, this method has no effect. + + + + + we count the number of values first to allocate a single array with of proper size + + + + + Implements a least recently used cache. + + + + + Returns the keys of the items stored in the cache, sorted from the most recently used + to the least recently used. + + + + + Initializes a new LRU cache with a given size. + The class is not thread safe. + + + + + Looks up and returns an item. If the item is found, mark it as recently used. + + + + + Adds a new item in the cache. It will be marked as recently used. If the cache + would grow over the max size, the least recently used item is removed. + + + + + Some useful math methods. + + + + + Finds the best least-squares fit of y = ax + b + + The x values. + The y values. + The coefficent a. + The intercept b. + + + + The product of elements in a + + an array + the product of a's elements + + + + Find the max element of a + + an array + the max element + + + + Find the minimum element of a + + an array + the minimum element + + + + Finds the first index of the max element of the span. + NaNs are ignored. If all the elements to consider are NaNs, -1 is + returned. The caller should distinguish in this case between two + possibilities: + 1) The number of the element to consider is zero. + 2) All the elements to consider are NaNs. + + The span of floats. + the first index of the max element + + + + Finds the first index of the minimum element of the span. + NaNs are ignored. If all the elements to consider are NaNs, -1 is + returned. The caller should distinguish in this case between two + possibilities: + 1) The number of the element to consider is zero. + 2) All the elements to consider are NaNs. + + The span of floats. + the first index of the minimum element + + + + computes the "softmax" function: log sum_i exp x_i + + Span of numbers to softmax + the softmax of the numbers + may have slightly lower roundoff error if inputs are sorted, smallest first + + + + computes "softmax" function of two arguments: log (exp x + exp y) + + + + + true if two float values are close (using relative comparison) + + + + + + + + Returns the log of the gamma function, using the Stirling approximation + + Argument of function + Log Gamma(x) + Accurate to eight digits for all x. + + + + Computes the log factorial of n, using fast methods + + The number to compute the factorial of + The log factorial of n + + + + Returns the two-tailed p-value given a t statistic from a distribution + parameterized by the provided number of degrees of freedom. + + The t-statistic + The degrees of freedom + The corresponding two-tailed p-value + + + + Lentz's algorithm for evaluating the continued fraction + b0 + a1 / (b1 + a2 / (b2 + a3 / (b3 + a4 / ...) ) ) + + The a function mapping positive integers to a sequence term + The b function mapping non-negative integers to a sequence term + Calculate the continued fraction to this tolerance + The evaluation of the continued fraction + + + + The logistic sigmoid function: 1 / (1 + e^(-x)). + + + + + Hyperbolic tangent. + + + + + The logistic sigmoid function: 1 / (1 + e^(-x)). + + + + + Hyperbolic tangent. + + + + + The exponential function: e^(x). + + + + + The logistic sigmoid function: 1 / (1 + e^(-x)). + + + + + The hyperbolic tangent function. + + + + + The exponential function: e^(x). + + + + + Apply a soft max on an array of floats. Note that src and dst may be the same array. + + + + + Apply a soft max on a range within an array of floats. Note that src and dst may be the same array. + + + + + Entropy of a given probability + + + + + Cross-entropy of two distributions + + + + + Given a set of values Ln(a1), Ln(a2), ... Ln(an), + return Ln(a1+a2+...+an). This is especially useful + when working with log probabilities and likelihoods. + + + + + + Math.Sin returns the input value for inputs with large magnitude. We return NaN instead, for consistency + with Math.Sin(infinity). + + + + + Math.Cos returns the input value for inputs with large magnitude. We return NaN instead, for consistency + with Math.Cos(infinity). + + + + + Returns the smallest integral value that is greater than or equal to the result of the division. + + Number to be divided. + Number with which to divide the numerator. + + + + + Swap the first m*n elements within a given array so that, for any + non-negative i and j less than m and n respectively, dst[i*n+j] == src[j*m+i]. + This variant of the function is single threaded, and useful in that + case where the workflow is otherwise single threaded. + + Elements of the array are this type + + Where to write the transpose. Note that dst cannot be the same as src. + + + + + + Swap the first m*n elements within a given array so that, for any + non-negative i and j less than m and n respectively, dst[i*n+j] == src[j*m+i] + + Elements of the array are this type + The source elements of the transpose. Must contain at least m*n elements. + Where to write the transpose. Note that dst cannot be the same as src. Must contain at least m*n elements. + The major index. + The minor index. Elements are currently stored in "m" blocks of "n" items. + + + + Swap the first m*n elements within a given array so that, for any + non-negative i and j less than m and n respectively, b[i*n+j] == a[j*m+i] + + + Where to write the transpose. Note that dst cannot be the same as src. + + + + + + Swap the first m*n elements within a given array so that, for any + non-negative i and j less than m and n respectively, b[i*n+j] == a[j*m+i] + + + Where to write the transpose. Note that dst cannot be the same as src. + + + + + + A synchronization primitive meant to address situations where you have a set of + entities of known count, where you want to iteratively provide critical sections + for each depending on which comes first, but you do not necessarily know what + constitutes "first" until all such entities tell you where they stand in line. + + The anticipated usage is that whatever entity is using the + to synchronize itself, will register itself using + so as to unblock any "lower" waiters as soon as it knows what value it needs to + wait on, perform whatever local work it can, and when it needs to, wait on the + event it got when it registered itself. It may then repeat the cycle by + registering itself for a new event (or, finally, retiring itself through + ). + + + + + This is an event-line pair. The intended usage is, when the line + is the minimum at a point when all waiters have registered, the event + will be signaled. + + + + + Creates a minimum waiter. + + The initial number of waiters + + + + Indicates to the waiter that we want to, at some future point, wait at a given + position. This object will return a reset event that can be waited on, at the + point when we actually want to wait. This method itself has the potential to + signal other events, if by registering ourselves the waiter becomes aware of + the maximum number of waiters, allowing that waiter to enter its critical state. + + If multiple events are associated with the minimum value, then only one will + be signaled, and the rest will remain unsignaled. Which is chosen is undefined. + + + + + Retires one of the waiters, and return the current maximum number of waiters. + If it so happens that by retiring this waiter the number of waiters reaches the + maximum, the appropriate waiter will be signaled as described in . + + + + + Normalized string type. For string pooling. + + + + + NormStr's can only be created by the Pool. + + + + + Find the given string in the pool. If not found, returns null. + + + + + Make sure the given string has an equivalent NormStr in the pool and return it. + + + + + Make sure the given string has an equivalent NormStr in the pool and return it. + + + + + Make sure the given string builder has an equivalent NormStr in the pool and return it. + + + + + Adds the item. Does NOT check for whether the item is already present. + + + + + The primary use case for this structure is to impose ordering among + multiple producer threads, in case one is producing output that one + wishes to have ordered. + + More specifically, the ordered waiter allows a thread to wait on a + particular position. So if three threads wait on 0, 1, then 2 (in + any order), the first thread to clear the wait will be 0, then 1 will + be cleared once incremented, then 2 will be cleared once incremented. + + + + + This is an event-line pair. The intended usage is, when the line + is hit by the containing ordered waiter, the thread will be hit. + + + + + Creates an ordered waiter. + + If true, then the first position (that is, + position 0) will be considered already free to proceed. If not something + will need to hit increment. + + + + Creates an ordered waiter. + + If startPos is >= 0 then waiter starts from that position. + If not something will need to hit increment |startPos| times. + + + + Wait on a given position. This will block, until this object has + called up to the position indicated. This + accepts cancellation tokens, but the default cancellation token also + works. + + + + + Moves the waiter to the next position, and signals any waiters waiting at + or before that position. + + + + + Signals all waiters. No more calls to should be + attempted. + + + + + This will signal all the waiters, but cause them to throw an exception. + + The exception that will be the inner exception, of an + exception that will throw for all current and subsequent waiters. + + + + Contains extension methods that aid in building cross platform. + + + + + This is an interface for creating samples of a requested size from a stream of data of type . + The sample is created in one pass by calling for every data point in the stream. Implementations should have + a delegate for getting the next data point, which is invoked if the current data point should go into the reservoir. + + + + + If the number of elements sampled is less than the reservoir size, this should return the number of elements sampled. + Otherwise it should return the reservoir size. + + + + + Returns the number of elements sampled so far. + + + + + Sample the next data point from the stream. + + + + + This must be called before any calls to , and no subsequent calls to can + be made after that. + + + + + Return the elements in the sample. + + + + + This class produces a sample without replacement from a stream of data of type . + It is instantiated with a delegate that gets the next data point, and builds a reservoir in one pass by calling + for every data point in the stream. In case the next data point does not get 'picked' into the reservoir, the delegate is not invoked. + Sampling is done according to the algorithm in this paper: https://epubs.siam.org/doi/pdf/10.1137/1.9781611972740.53. + + + + + Gets the reservoir sample. + + + + + This class produces a sample with replacement from a stream of data of type . + It is instantiated with a delegate that gets the next data point, and builds a reservoir in one pass by calling + for every data point in the stream. In case the next data point does not get 'picked' into the reservoir, the delegate is not invoked. + Sampling is done according to the algorithm in this paper: https://epubs.siam.org/doi/pdf/10.1137/1.9781611972740.53. + + + + + Returns the cache. Users should not change the elements of the returned array. + Access only elements up to the logical length of the array, which is . + + + + + Gets a reservoir sample with replacement of the elements sampled so far. Users should not change the + elements returned since multiple elements in the reservoir might be pointing to the same memory. + + + + + This class takes care of downloading resources needed by ML.NET components. Resources are located in + a pre-defined location, that can be overridden by defining Environment variable . + + + + + The location of the resources to download from. Uses either the default location or a location defined + in an Environment variable. + + + + + An environment variable containing a timeout period (in milliseconds) for downloading resources. If defined, + overrides the timeout defined in the code. + + + + + Environment variable containing optional url to download resources from. + + + + + Generates a url from a suffix. + + + + + Returns a that tries to download a resource from a specified url, and returns the path to which it was + downloaded, and an exception if one was thrown. + + + The function checks whether or not the absolute URL with the + default host "aka.ms" formed from redirects to the default Microsoft homepage. + As such, only absolute URLs with the host "aka.ms" is supported with . + + The host environment. + A channel to provide information about the download. + The relative url from which to download. + This is appended to the url defined in . + The name of the file to save. + The directory where the file should be saved to. The file will be saved in a directory with the specified name inside + a folder called "mlnet-resources" in the directory. + An integer indicating the number of milliseconds to wait before timing out while downloading a resource. + The download results, containing the file path where the resources was (or should have been) downloaded to, and an error message + (or null if there was no error). + + + Returns the error message if an error occurred, null if download was successful. + + + + Get the path where the resource should be downloaded to. If the environment variable + is defined, download to the location defined there. Otherwise, download to the "dir" directory + inside \mlnet-resources\. + + + + This method checks whether or not the provided aka.ms url redirects to + Microsoft's homepage, as the default faulty aka.ms URLs redirect to https://www.microsoft.com/?ref=aka . + The provided url to check + + + + A class containing common statistical functions + + + + + Returns a number uniformly sampled from 0...(rangeSize-1) + + Size of range to sample from, between 0 and int.MaxValue^2 + Random number generator + Sampled value + + + + Returns a number sampled from a zero-mean, unit variance Gaussian + + A Random to use for the sampling + a sample + uses Joseph L. Leva's algorithm from "A fast normal random number generator", 1992 + + + + Returns a sample from the gamma distribution with scale parameter 1, shape parameter alpha + + Shape parameter + The random number generator to use + Sample from gamma distribution + Uses Marsaglia and Tsang's fast algorithm + + + + Generates a beta-distributed random variable + + Random generator to use + first parameter + second parameter + Sample from distribution + + + + Generates a dirichlet-distributed random variable + + Random generator to use + array of parameters + array in which to store resulting sample + + + + Sample from a standard Cauchy distribution: + https://en.wikipedia.org/wiki/Lorentzian_function + + + + + + + Returns a number sampled from the binomial distribution with parameters n and p + + Random generator to use + Parameter N of binomial + Parameter p of binomial + + Should be robust for all values of n, p + + + + Returns a "view" stream, which appears to be a possibly truncated + version of the stream. Reads on this containing stream will also + advance the wrapped stream. If truncated, reads will not progress + beyond the indicated length, and writes will fail beyond the + indicated length. This stream supports seeking (and associated + operations) if the underlying stream supports seeking, where it is + supposed that the returned SubsetStream instance has position + 0 during creation, corresponding to whatever the position of the + enclosed stream was during creation, so this stream will act as an + "offset" version of the enclosed stream. As this is intended to + operate over a subset of a stream, during closing or disposal of the + subset stream, the underlying stream will always remain open and + undisposed. + + + + + Construct the view stream. + + The underlying stream + The maximum length this containing + stream should appear to have, or null if unbounded + + + + The running (unweighted) count of elements added to this object. + + + + + The running (weighted) count of elements. + + + + + The running count of non-zero elements. + + + + + The running weight of non-zero elements. + + + + + The running arithmetic mean. + + + + + Thes sample variance. + + + + + The sample standard deviation. + + + + + Returns the standard error of the mean. + + + + + The maximum. + + + + + The minimum. + + + + + Accumulates one more value, optionally weighted. + This accumulation procedure is based on the following, + with adjustments as appropriate for weighted instances: + https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance + + The value + The weight given to this value + Amount of appearance of this value + + + + Adds a stats object with another type of stats object. The result + should be equivalent, up to the effects of numerical imprecision, + as if in addition to all the values this object has seen, it has + also seen the values added to the other object. + + + + + + A convenient way to combine the observations of two Stats objects + into a new Stats object. + + The first operand + The second operand + + + + + A class for one-pass accumulation of weighted summary statistics, up + to the fourth moment. The accumulative algorithms used here may be + reviewed at + https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance + All quantities are weighted, except for RawCount. + + + + + The running count of non-zero elements. + + + + + The sample skewness. + + + + + The sample kurtosis. + + + + + Z-test value for a normality test based on the skew. + Under the null hypothesis of normality this quantity will + itself be approximately normally distributed. + + + + + Z-test value for a normality test based on the kurtosis. + Under the null hypothesis of normality this quantity will + itself be approximately normally distributed. + + + + + Omnibus K2 unifying the skew and kurtosis Z-tests. Under the + null hypothesis of normality this quantity will be approximately + chi-squared distributed. + + D'Agostino, Ralph B.; Albert Belanger; Ralph B. D'Agostino, Jr (1990). "A suggestion + for using powerful and informative tests of normality". The American Statistician 44 + (4): 316–321. JSTOR 2684359. + + + + + Accumulates one more value, optionally weighted. + This accumulation procedure is based on the following, + with adjustments as appropriate for weighted instances: + https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance + + The value + The weight given to this value + Amount of appearance of this value + + + + Adds a stats object with another type of stats object. The result + should be equivalent, up to the effects of numerical imprecision, + as if in addition to all the values this object has seen, it has + also seen the values added to the other object. + + + + + + A convenient way to combine the observations of two Stats objects + into a new Stats object. + + The first operand + The second operand + + + + + This class performs discretization of (value, label) pairs into bins in a way that minimizes + the target function "minimum description length". + The algorithm is outlined in an article + "Multi-Interval Discretization of Continuous-Valued Attributes for Classification Learning" + [Fayyad, Usama M.; Irani, Keki B. (1993)] https://ijcai.org/Past%20Proceedings/IJCAI-93-VOL2/PDF/022.pdf + + The class can be used several times sequentially, it is stateful and not thread-safe. + Both Single and Double precision processing is implemented, and is identical. + + + + + Finds the bins for Single values (and integer labels) + + Maximum number of bins + Minimum number of values per bin (stopping condition for greedy bin splitting) + Cardinality of the labels + The feature values + The corresponding label values + An array of split points, no more than total (but maybe less), ending with PositiveInfinity + + + + Finds the bins for Double values (and integer labels) + + Maximum number of bins + Minimum number of values per bin (stopping condition for greedy bin splitting) + Cardinality of the labels + The feature values + The corresponding label values + An array of split points, no more than total (but maybe less), ending with PositiveInfinity + + + + Calculate the entropy and label cardinality for a given interval within the data + + + + + Finds the optimum bins with respect to + + The sorted array of indices that are exclusive upper bounds of the respective bins + + + + A readable that is backed by a . + Because text readers strip line breaks from the end of their lines, this + compensates by inserting \n line feed characters at the end of every + input line, including the last one. + + + + + Create a stream wrapping the given text reader, using the + encoding. + + the reader to wrap + + + + Create a stream wrapping the given text reader, using the given encoding. The class + assumes that the encoding is distributive, that is, the concatenation of the byte + encodings of different strings, is a valid byte encoding of the single encoding of + the concatenation of those strings. (I believe all standard encodings obey this + property.) + + The reader to wrap. + The encoding to use. + + + + A helper method that will either ensure that is less + than (so there are at least some characters), or that + is set. + + + + + An object that serves as a source of a cancellation token, as well as having the ability + for anything to push an exception into the message, to trigger the cancellation. The general + intended usage is that, prior to creating a bunch of collaborating thread workers, this + object is created and made accessible to them, somehow. Each thread worker will work as they + would be engineered without this class, except they will wrap their contents in a try-catch + block to push any exceptions (hopefully none) into this marshaller, using . + Further, any potentially blocking operation of the thread workers must be changed to use + as the cancellation token (this token is canceled iff + is ever called). The controlling thread, whatever that may be, once it is either sure + has been called (possibly by receiving the cancellation) or is sure somehow + that the workers have finished by its own means, will call to throw + the set exception as an inner exception, in the wrapping thread. + + + + + A cancellation token, whose source will be canceled if is ever called. + Any thread blocking operation of a family of thread workers using this structure + must use this cancellation token, or else there is a strong possibility for threads + to stop responding if an exception is thrown at any point. + + + + + Store an exception and set the cancellation token. If this was already + called, this newly passed in exception is ignored. (Important, since a + common source of exceptions would be the exceptions relating to the cancellation.) + + The type of worker that threw the exception, used + in the description of the wrapping exception + The exception that will become the inner exception + + + + If an exception was ever set through , raise it as an appropriate + inner exception. This should only be called just prior to dispose, when the workers + have already finished. If there is no stored exception, this will do nothing. Note + that this does not "expire" the exception, that is, if you were to call this again, + it would throw the same exception. + + + + + The tree structure is simultaneously a tree, and a node in a tree. The interface to + get children occurs through the tree itself implementing itself as a dictionary. This + tree is not terribly efficient, and is meant to be accommodate additions, deletions, + and change of values. Because it is implemented as a dictionary, there is an unfortunate + collision in naming between the dictionary type of "values" (which in this case are + child trees) and the tree type of values, called "node values." + + Children are keyed with values of this type + The type of the node value + + + + Either the node value, or the default of the value type, + if is false. + + + + + This is the key for this child node in its parent, if any. If this is not + a child of any parent, that is, it is the root of its own tree, then + + + + + The parent for this tree, or null if it has no parent. + + + + + All child keys for this node. + + + + + All children for this node. + + + + + The number of children with this node as a parent. + + + + + Initializes a tree with no node value, and no children. + + + + + Tries to get the subtree for a child key. + + The key of the child to find + The child, if any, or null if no child + with this key is present + Whether a child with this key was present + + + + Sees whether a child with a given key is present. + + The key of the child to find + + + + + Adds a new child to this dictionary. + + The key / child node pair to add + + + + Adds a node as a child of this node. This will disconnect the + + + + + + + Removes this node and all its descendants from a tree, leading it to + be the root of its own tree. Following this, will + be null, and the previous parent (if any) will no longer have + this node present as a child. + + + + + Remove a child with a specified key. + + The key of the child to remove + + + + + Convenience utilities for vector operations on . + + + + + Applies to every explicitly defined element of the vector, + in order of index. + + + + + Applies the to each corresponding pair of elements + where the item is implicitly defined in the vector. By explicitly defined, + we mean that for a given index i, both vectors have an entry in + corresponding to that index. + + The first vector + The second vector + Delegate to apply to each pair of non-zero values. + This is passed the index, and two values + + + + Applies the ParallelVisitor to each corresponding pair of elements where at least one is non-zero, in order of index. + + a vector + another vector + Function to apply to each pair of non-zero values - passed the index, and two values + + + + Sets all values in the vector to the default value for the type, without changing the + density or index structure of the input array. That is to say, the count of the input + vector will be the same afterwards as it was before. + + + + + A delegate for functions that can change a value. + + Index of entry + Value to change + + + + A predicate on some sort of value. + + The value to test + The result of some sort of test from that value + + + + Applies the to every explicitly defined + element of the vector. + + + + + Applies some function on a value at a particular slot value, changing that slot value. + This function will, wherever possible, not change the structure of . + If the vector is sparse, and the corresponding slot is not explicitly represented, + then this can involve memory copying and possibly memory reallocation on . + However, if the item is explicitly represented, even if the item is set to the default + value of it will not change the structure of , + in terms of sparsifying a dense array, or dropping indices. + + The vector to modify + The slot of the vector to modify + The manipulation function + A predicate that returns true if we should skip insertion of a value into + sparse vector if it was default. If the predicate is null, we insert any non-default. + + + + Given a vector, turns it into an equivalent dense representation. + + + + + Given a vector, ensure that the first slots are explicitly + represented. + + + + + Creates a maybe sparse copy of a VBuffer. + Whether the created copy is sparse or not is determined by the proportion of non-default entries compared to the sparsity parameter. + + + + + A delegate for functions that access an index and two corresponding + values, possibly changing one of them. + + Slot index of the entry. + Value from first vector. + Value from second vector, which may be manipulated. + + + + A delegate for functions that access an index and two corresponding + values, stores the result in another vector. + + Slot index of the entry. + Value from first vector. + Value from second vector. + The value to store the result. + + + + Applies the to each pair of elements + where is defined, in order of index. If there is + some value at an index in that is not defined in + , that item remains without any further modification. + If either of the vectors are dense, the resulting + will be dense. Otherwise, if both are sparse, the output will be sparse iff + there is any slot that is not explicitly represented in either vector. + + Argument vector, whose elements are only read + Argument vector, that could change + Function to apply to each pair of elements + + + + Applies the to each pair of elements + where is defined, in order of index. It stores the result + in another vector. If there is some value at an index in + that is not defined in , that slot value is copied to the + corresponding slot in the result vector without any further modification. + If either of the vectors are dense, the resulting + will be dense. Otherwise, if both are sparse, the output will be sparse iff + there is any slot that is not explicitly represented in either vector. + + Argument vector, whose elements are only read + Argument vector, whose elements are read in most cases. But in some + cases may be densified. + Result vector + Function to apply to each pair of elements + + + + Applies the to each pair of elements + where either or , has an element + defined at that index. If either of the vectors are dense, the resulting + will be dense. Otherwise, if both are sparse, the output + will be sparse iff there is any slot that is not explicitly represented in + either vector. + + Argument vector, whose elements are only read + Argument vector, that could change + Function to apply to each pair of elements + + + + Applies the to each pair of elements + where either or , has an element + defined at that index. It stores the result in another vector . + If either of the vectors are dense, the resulting + will be dense. Otherwise, if both are sparse, the output will be sparse iff + there is any slot that is not explicitly represented in either vector. + + Argument vector, whose elements are only read + Argument vector, whose elements are read in most cases. But in some + cases may be densified. + Result vector + Function to apply to each pair of elements + + + + The actual implementation of and + , that has internal branches on the implementation + where necessary depending on whether this is an inner or outer join of the + indices of on . + + + + + The actual implementation of and + , that has internal branches on the implementation + where necessary depending on whether this is an inner or outer join of the + indices of on . + + + + + Applies a function to explicitly defined elements in a vector , + storing the result in , overwriting any of its existing contents. + The contents of do not affect calculation. If you instead wish + to calculate a function that reads and writes , see + and . Post-operation, + will be dense iff is dense. + + + + + + + Applies a function to two vectors, storing the result in + , whose existing contents are discarded and overwritten. The + function is called for every index value that appears in either + or . If either of the two inputs is dense, the output will + necessarily be dense. Otherwise, if both are sparse, the output will be sparse iff + there is any slot that is not explicitly represented in either vector. + + + + + Copy from a source list to the given VBuffer destination. + + + + + Updates the logical length and number of physical values to be represented in + , while preserving the underlying buffers. + + + + + Tausworthe hybrid random number generator. + + + + diff --git a/W/Debug_Folder/Microsoft.ML.CpuMath.dll b/W/Debug_Folder/Microsoft.ML.CpuMath.dll new file mode 100644 index 000000000..7691103d7 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.CpuMath.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.CpuMath.xml b/W/Debug_Folder/Microsoft.ML.CpuMath.xml new file mode 100644 index 000000000..4602e0a62 --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.CpuMath.xml @@ -0,0 +1,686 @@ + + + + Microsoft.ML.CpuMath + + + + + This implements a logical array of floats that is automatically aligned for SSE/AVX operations. + To pin and force alignment, call the GetPin method, typically wrapped in a using (since it + returns a Pin struct that is IDisposable). From the pin, you can get the IntPtr to pass to + native code. + + The ctor takes an alignment value, which must be a power of two at least sizeof(float). + + + + + Allocate an aligned vector with the given alignment (in bytes). + The alignment must be a power of two and at least sizeof(Float). + + + + + This implements a logical array of Floats that is automatically aligned for SSE/AVX operations. + This is a thin wrapper around the AlignedArray type implemented in C++. This simply couples + the AlignedArray with a logical size, which does not include padding, while the AlignedArray + size does include padding. + + + + + The value count. + + + + + The logical size of the vector. + + + + + Allocate an aligned vector with the given alignment (in bytes). + The alignment must be a power of two and at least sizeof(Float). + + + + + The physical AligenedArray items. + + + + + The alignment. + + + + + Set and get the value of the vector at the given index. + + The index + The value at the given index + + + + Get the value of the vector at the given index. + + The index + The value at the given index + + + + Assign randomized values to the vector elements via the input function. + + The input rand om function that takes no arguments and returns a float value + + + + Assign zeros to the vector elements. + + + + + Copy the values into dst, starting at slot ivDst and advancing ivDst. + + The destination array + The starting index in the destination array + + + + Copy the values from this vector starting at slot ivSrc into dst, starting at slot ivDst. + The number of values that are copied is determined by count. + + The staring index in this vector + The destination array + The starting index in the destination array + The number of elements to be copied + + + + Copy the values from src, starting at slot index and advancing index, into this vector. + + The source array + The starting index in the source array + + + + Copy the values from src, starting at slot index and advancing index, into this vector, starting at slot ivDst. + The number of values that are copied is determined by count. + + The staring index in this vector + The source array + The starting index in the source array + The number of elements to be copied + + + + Copy the values of src vector into this vector. The src vector must have the same size as this vector. + + The source vector + + + + Get the underlying AlignedArray as IEnumerator<Float>. + + + + + This implements a logical matrix of Floats that is automatically aligned for SSE/AVX operations. + The ctor takes an alignment value, which must be a power of two at least sizeof(Float). + + + + + The logical number values in the matrix + + + + + The logical number of rows + + + + + The logical number of columns + + + + + The physical number of rows + + + + + The physical number of columns + + + + + Allocate an aligned matrix with the given alignment (in bytes). + + + + + Assign randomized values to the matrix elements via the input function. + + The input rand om function that takes no arguments and returns a float value + + + + Assign zeros to the matrix elements. + + + + + Copy the values of src matrix into this matrix. The src matrix must have the same physical and logical size as this matrix. + + The source matrix + + + + This implements a logical row-major matrix of Floats that is automatically aligned for SSE/AVX operations. + The ctor takes an alignment value, which must be a power of two at least sizeof(Float). + + + + + The logical number of rows + + + + + The logical number of columns + + + + + The physical number of rows + + + + + The physical number of columns + + + + + Copy the values into dst, starting at slot ivDst and advancing ivDst. + + The destination array + The starting index in the destination array + + + + Copy the values from src, starting at slot ivSrc and advancing ivSrc. + + The source array + The starting index in the source array + + + + Get the underlying AlignedArray as IEnumerator<Float>. + + + + + This implements a row-major matrix of Floats that is automatically aligned for SSE/AVX operations. + The ctor takes an alignment value, which must be a power of two at least sizeof(Float). + + + + + The logical number of rows + + + + + The logical number of columns + + + + + The physical number of rows + + + + + The physical number of columns + + + + + Copy the values from this matrix, starting from the row into dst, starting at slot ivDst and advancing ivDst. + + The starting row in this matrix + The destination array + The starting index in the destination array + + + + Assign zeros to the values at the indices + + The indices + + + + This implements a logical matrix of Floats that is automatically aligned for SSE/AVX operations. + The ctor takes an alignment value, which must be a power of two at least sizeof(Float). + + + + + Allocate an aligned matrix with the given alignment (in bytes). + + + + + The logical number of rows + + + + + The logical number of columns + + + + + The physical number of rows + + + + + The physical number of columns + + + + + Copy the values into dst, starting at slot ivDst and advancing ivDst. + + The destination array + The starting index in the destination array + + + + Copy the values from this matrix, starting from the row into dst, starting at slot ivDst and advancing ivDst. + + The starting row in this matrix + The destination array + The starting index in the destination array + + + + Copy the values from src, starting at slot ivSrc and advancing ivSrc. + + The source array + The starting index in the source array + + + + Assign zeros to the values at the indices + + The indices + + + + Get the underlying AlignedArray as IEnumerator<Float>. + + + + + Assert the compatibility of the underlying AlignedArray for the input matrix in terms of alignment amount. + + The input matrix + + + + Assert the compatibility of the underlying AlignedArray for the input vector in terms of alignment amount. + + The input vector + + + + Asserts the following: + 1. The compatibility of the underlying AlignedArray for mat in terms of alignment amount. + 2. The compatibility of the underlying AlignedArray for src in terms of alignment amount. + 3. The compatibility of the underlying AlignedArray for dst in terms of alignment amount. + 4. The compatibility of the matrix-vector multiplication mat * src = dst. + + + + + + + + Matrix multiplication: + dst = mat * src + + The multiplier matrix + The source vector + The destination vector + + + + Matrix transpose multiplication: + dst = mat' * src + + The multiplier matrix + The source vector + The destination vector + + + + Count the number of zero bits in the lonest string of zero's from the lowest significant bit of the input integer. + + The input integer + + + + + + + if 's alignment is suitable to SSE instructions. Returns + if 's alignment is ok and otherwise. + + The vector being checked. + Whether is aligned well. + + + + Compute the product of matrix (the matrix is flattened because its type is instead of a matrix) + and a vector . + + Whether to transpose before doing any computation. + If is , is a m-by-n matrix, and the value at the i-th row and the j-th column is indexed by i * n + j in . + If is , would be viewed a n-by-m matrix, and the value at the i-th row and the j-th column in the transposed matrix is indexed by j * m + i in the + original . + A n-by-1 matrix, which is also a vector. + A m-by-1 matrix, which is also a vector. + The truncation level of . For example, if is 2, + will be considered as a 2-by-1 matrix and therefore elements after its 2nd element will be ignored. If no truncation should happen, + set to the length of . + + + + Assign random values using the given random function. + + + + + Set all values to zero. + + + + + Copy the values into dst, starting at slot ivDst and advancing ivDst. + + + + + Copy values from the given src array into this buffer, starting at the given index in src, + + + + + A logical math vector. + + + + + The vector size + + + + + Get the i'th component of the vector. + + + + + The row count + + + + + the column count + + + + + A 2-dimensional matrix. + + + + + Copy the values for the given row into dst, starting at slot ivDst. + + + + + Zero out the items with the given indices. + The indices contain the logical indices to the vectorized representation of the matrix, + which can be different depending on whether the matrix is row-major or column-major. + + + + + Add src to the 128 bits contained in dst. Ignores overflow, that is, the addition is done modulo 2^128. + + + + + Add src to dst. Ignores overflow, that is, the addition is done modulo 2^128. + + + + + Subtract src from the 128 bits contained in dst. Ignores overflow, that is, the subtraction is + done modulo 2^128. + + + + + Subtract src from dst. Ignores overflow, that is, the subtraction is done modulo 2^128. + + + + + Return true if a is less than b. + + + + + Multiple the two 64-bit values to produce 128 bit result. + + + + + Return the number of zero bits on the high end. + + + + + Probability Functions. + + + + + The approximate complimentary error function (i.e., 1-erf). + + The input parameter, of infinite range. + Evaluation of the function + + + + The approximate error function. + + The input parameter, of infinite range. + Evaluation of the function + + + + The inverse error function. + + Parameter in the range 1 to -1. + Evaluation of the function. + + + + The probit function. This has many applications, the most familiar being perhaps + that this is the point "x" at which the standard normal CDF evaluates to the indicated + p value. It is used in establishing confidence intervals. + + The input p value, so in the range 0 to 1. + One interpretation is, the value at which the standard normal CDF evaluates to p. + + + + Interface for "processing" exceptions before they are thrown. This can + be used to add context to the exception, wrap the exception in another one, + totally replace the exception, etc. It is not legal to return null from + Process (unless null was passed in, which really shouldn't happen). + + + + + A string describing the context itself. + + + + + Does standard processing of an exception (typically called after construction + but before it is thrown). + + + + + Mark the exception by setting in the exception + to 1. + + + + + Indicates whether the exception was "marked" the Contracts code. + + + + + Exceptions whose message communicates potentially sensitive information should be + marked using this method, before they are thrown. Note that if the exception already + had this flag set, the message will be flagged with the bitwise or of the existing + flag, alongside the passed in sensitivity. + + + + + This is a convenience method to get the sensitivity of an exception, + as encoded with . If there is no key, then + the message is assumed to be of unknown sensitivity, i.e., it is assumed + that it might contain literally anything. + + The exception to query + The value encoded at the , if it is + a value. If neither of these conditions + hold then is returned. + + + + Sets the assert handler to the given function, returning the previous handler. + + + + + Default exception type (currently InvalidOperationException) + + + + + For signaling bad user input. + + + + + For signaling bad function parameters. + + + + + For signaling null function parameters. + + + + + For signaling null or empty function parameters (strings, arrays, collections, etc). + + + + + For signaling null, empty or white-space function parameters (strings, arrays, collections, etc). + + + + + For signaling errors in decoding information, whether while reading from a file, + parsing user input, etc. + + + + + + For signaling IO failures. + + + + + For signaling functionality that is not YET implemented. + + + + + For signaling functionality that is not implemented by design. + + + + + For signaling schema validation issues. + + + + + CheckUserArg / ExceptUserArg should be used when the validation of user-provided arguments failed. + Typically, this is shortly after the arguments are parsed using CmdParser. + + + + + This documents that the parameter can legally be null. + + + + + This documents that the parameter can legally be null. + + + + + This documents that the parameter can legally be null. + + + + + Intended to be applied to types and members with internal scope to indicate that friend access of this + internal item is OK from another assembly. This restriction applies only to assemblies that declare the + assembly level attribute. Note that this attribute is not + transferable: an internal member with this attribute does not somehow make a containing internal type + accessible. Conversely, neither does marking an internal type make any unmarked internal members accessible. + + + + + This is an assembly level attribute to signal that friend accesses on this assembly should be checked + for usage of . If this attribute is missing, normal access rules for + friends should apply. + + + + diff --git a/W/Debug_Folder/Microsoft.ML.Data.dll b/W/Debug_Folder/Microsoft.ML.Data.dll new file mode 100644 index 000000000..b574f1cb1 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.Data.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.Data.xml b/W/Debug_Folder/Microsoft.ML.Data.xml new file mode 100644 index 000000000..9ae8dfeac --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.Data.xml @@ -0,0 +1,14072 @@ + + + + Microsoft.ML.Data + + + + + Callback from the CV method to apply the transforms from the train data to the test and/or validation data. + + + + + Callback from the CV method to apply the transforms to the train data. + + + + The environment. + The registration name. + The input data view. + The column to use for splitting data into folds. + Cross validation arguments. + The delegate to create RoleMappedData + The delegate to apply the transforms from the train pipeline to the test data + The scorer + The evaluator + The delegate to create validation data view + The delegate to apply the transforms from the train pipeline to the validation data + The input predictor, for the continue training option + The command string. + Original loader so we can construct correct pipeline for model saving. + Whether to produce the per-instance data view. + + + + + Creates and runs tasks for each fold of cross validation. The split column is used to split the input data into folds. + There are two cases: + 1. The split column is R4: in this case it assumes that the values are in the interval [0,1] and will split + this interval into equal width folds. If the values are uniformly distributed it should result in balanced folds. + 2. The split column is key of known cardinality: will split the whole range into equal parts to form folds. If the + keys are generated by hashing for example, it should result in balanced folds. + + + + + + Take path to expected output model file and return path to output model file for specific fold. + Example: \\share\model.zip -> \\share\model.fold001.zip + + Path to output model file + Current fold + Path to output model file for specific fold + + + + This holds useful base classes for commands that ingest a primary dataset and deal with associated model files. + + + + + Loads multiple artifacts of interest from the input model file, given the context + established by the command line arguments. + + The channel to which to provide output. + Whether we want a predictor from the model file. If + false we will not even attempt to load a predictor. If null we will + load the predictor, if present. If true we will load the predictor, or fail + noisily if we cannot. + The predictor in the model, or null if + was false, or was + null and no predictor was present. + Whether we want the training schema. Unlike + , this has no "hard fail if not present" option. If + this is true, it is still possible for to remain + null if there were no role mappings, or pipeline. + The training schema if + is true, and there were role mappings stored in the model. + The data pipe constructed from the combination of the + model and command line arguments. + + + + Saves to the specified . + + + + + Saves to the specified . + + + + + A set of string literals intended to be "canonical" names for column names intended for particular purpose. + While not part of the public API surface, its primary purpose is intended to be used in such a way as to encourage + uniformity on the public API surface, wherever it is judged where columns with default names should be consumed. + + + + + This class contains information about an overall metric, namely its name and whether it is a vector + metric or not. + + + + + An enum specifying whether the metric should be maximized or minimized while sweeping. 'Info' should be + used for metrics that are irrelevant to the model's quality (such as the number of positive/negative + examples etc.). + + + + + This is an interface for evaluation. It has two methods: and . + Both take a as input. The is assumed to contain all the column + roles needed for evaluation, including the score column. + + + + + Compute the aggregate metrics. Return a dictionary from the metric kind + (overal/per-fold/confusion matrix/PR-curves etc.), to a data view containing the metric. + + + + + Return an containing the per-instance results. + + + + + Get all the overall metrics returned by this evaluator. + + + + + Signature for creating an . + + + + + Signature for creating an . + + The data containing the columns to score + The mapper, already bound to the schema column in + This parameter holds a snapshot of the role mapped training schema as + it existed at the point when was trained, or null if it not + available for some reason + + + + Whether a column should be added, assuming it's not hidden + (i.e.: this doesn't check for hidden + + + + + Determines the scorer component factory (if the given one is null or empty), and creates the schema bound mapper. + + + + + Determine the default scorer for a schema bound mapper. This looks for text-valued ScoreColumnKind + metadata on the first column of the mapper. If that text is found and maps to a scorer loadable class, + that component is used. Otherwise, the GenericScorer is used. + + The host environment.. + The schema bound mapper to get the default scorer.. + An optional suffix to append to the default column names. + + + + Given a predictor, an optional mapper factory, and an optional scorer factory settings, + produces a compatible ISchemaBindableMapper. + First, it tries to instantiate the bindable mapper using the mapper factory. + Next, it tries to instantiate the bindable mapper using the + (this will only succeed if there's a registered BindableMapper creation method with load name equal to the one + of the scorer). + If the above fails, it checks whether the predictor implements + directly. + If this also isn't true, it will create a 'matching' standard mapper. + + + + + This shows the schema of the given , ignoring the data specification + in the parameter. Test code invokes this, hence it is internal. + + + + + Returns the sequence of views passed through the transform chain, last to first. + + + + + This command is essentially chaining together and + , without the need to save the intermediary scored data. + + + + + If user name is null or empty, return null. + Else, if the user name is found in the schema, return the user name. + Else, if the user name equals the default name return null. + Else, throw an error. + + + + + Save the model to the output path. + The method saves the loader and the transformations of dataPipe and saves optionally predictor + and command. It also uses featureColumn, if provided, to extract feature names. + + The host environment to use. + The communication channel to use. + The output file handle. + The predictor. + The training examples. + The command string. + + + + Save the model to the stream. + The method saves the loader and the transformations of dataPipe and saves optionally predictor + and command. It also uses featureColumn, if provided, to extract feature names. + + The host environment to use. + The communication channel to use. + The output model stream. + The predictor. + The training examples. + The command string. + + + + Save the data pipeline defined by dataPipe. If blankLoader is true or the root IDataView is not an IDataLoader, + this persists the root as a BinaryLoader having the same schema. + + + + + Traces back the .Source chain of the transformation pipe up to the moment it no longer can. + Returns all the transforms of and the first data view (a non-transform). + + The transformation pipe to traverse. + The beginning data view of the transform chain + The list of the transforms + + + + This class represents an eager 'preview' of a . + + + + + Each column corresponds to a table of contents entry, describing information about the column + and how values may be extracted. For columns represented physically within the stream this will + include its location within the stream and a codec to decode the bytestreams, and for generated + columns procedures to create them. This structure is used both for those columns that + we know how to access (called alive columns), and those columns we do not know how to access + (either because the value codec or compressions scheme is unrecognized, called a dead column). + + + + + The name of the column. + + + + + The codec we will use to read the values from the stream. This will be null if + and only if this is a dead or generated column. + + + + + The column type of the column. This will be null if and only if this is a dead + column. + + + + + The compression scheme used on this column's blocks. + + + + + The number of rows in each block (except for the last one). + + + + + The offset into the stream where the lookup table for this column is stored. + + + + + The offset into the stream where the metadata TOC entries for this column are + stored. This will be 0 if there is no metadata for this column. + + + + + The index of the column. Note that if there are dead columns, this value may + differ from the corresponding column index as reported by the dataview. + + + + + Whether this is a generated column, that is, something dependent on no actual block data + in the file. + + + + + Constructor for a generated column, which corresponds to no column in the original file, + and has no stored blocks associated with it. The input must + be a ValueMapper mapping a long zero based row index, to some value with the + same type as the raw type in . + + + + + Returns the value mapper for a generated column. Only a valid call if + is the same type as . + + + + + Gets an array, one for each block of this column, describing its location within the file. + This will return null if and only if this is a generated column. + + + + + Fetches the maximum block sizes for both the compressed and decompressed + block sizes, for this column. If there are no blocks associated with this + column, for whatever reason (for example, a data view with no rows, or a generated + column), this will return 0 in both vlaues. + + The maximum value of the compressed block size + (that is, the actual size of the block in stream) among all blocks for this + column + The maximum value of the block size when + decompressed among all blocks for this column + + + + Gets an array containing the metadata TOC entries. This will return null if there + are no entries stored at all, and empty if there is metadata, but none of it was + readable. (To inspect attributes of the unreadable metadata, if any, see + .) All entries will point to metadata with + known codecs and compression schemes. + + + + + Gets an array containing the metadata TOC entries for all "dead" pieces of metadata. This + will return null if there are no metadata stored at all either readable or unreadable, and + empty if there is no unreadable piece of metadata. A piece of metadata is considered "dead" + if either its codec or compression kind is unknown. This is primarily for diagnostic purposes. + + + + + Returns the entry for a valid "live" piece of metadata given a kind. + + + + + Returns the location in the stream just past the end of the metadata table of contents. + If this column has no metadata table of contents defined, this will return 0. This is + primarily for diagnostic purposes. + + + + + + A column can be associated with metadata, in which case it will have one or more table of contents entries, + each represented by one of these entries. + + + + + The kind of the metadata, an identifying name. + + + + + The codec we will use to read the metadata value. If this is null, + the metadata is considered "dead," that is, uninterpretable. + + + + + The compression scheme used on the metadata block. If this is an unknown + type, the metadata is considered "dead," that is, uninterpretable. + + + + + The offset into the stream where the metadata block begins. + + + + + The number of bytes used to store the metadata block. + + + + + Return to the stored entry value as . An example of stored value is + . For implementations of , see , + , and . + + + + + Information on a metadata that could not be interpreted for some reason. + + + + + By calling , we make sure 's content get loaded definitely. + Without calling , could be default value of its type. + + + + + This function returns output schema, , of by translating into + s. If a loads a text column from the input file, its + should contains a with as its . + + of loaded file. + + + + Upper inclusive bound of versions this reader can read. + + + + + The first version that removes DvTypes and uses .NET standard + data types. + + + + + The first version of the format that accommodated DvText.NA. + + + + + The first version of the format that accommodated arbitrary metadata. + + + + + The first version of the format that accommodated slot names. + + + + + Low inclusive bound of versions this reader can read. + + + + + Constructs a new data view loader. + + A seekable, readable stream. Note that the data view loader assumes + that it is the exclusive owner of this stream. + Arguments + Host environment + Whether to leave the input stream open + + + + Creates a binary loader from a . Since the loader code + opens the file, this will always take ownership of the stream, that is, this is always + akin to leaveOpen in the other constructor being false. + + + + + Creates a binary loader from a stream that is not owned by the loader. + This creates its own independent copy of input stream for the binary loader. + + + + + Write the parameters of a loader to the save context. Can be called by , where there's no actual + loader, only default parameters. + + + + + Save a zero-row dataview that will be used to infer schema information, used in the case + where the binary loader is instantiated with no input streams. + + + + + Given the schema and a model context, save an imaginary instance of a binary loader with the + specified schema. Deserialization from this context should produce a real binary loader that + has the specified schema. + + This is used in an API scenario, when the data originates from something other than a loader. + Since our model file requires a loader at the beginning, we have to construct a bogus 'binary' loader + to begin the pipe with, with the assumption that the user will bypass the loader at deserialization + time by providing a starting data view. + + + + + This will attempt to extract a compressed block from the + queue. This returns true if and only if it + succeeded in extracting an item from the queue (even a sentinel block); + that is, if it returns false, then there are no more items to extract + (though, continuing to call this method is entirely possible, and legal, + if convenient). + + + + + Necessary to be called in the event of a premature exiting. This executes + the same recycle-fetch block cycle as , except that + nothing is actually done with the resulting block. This should be called + in a similar fashion as the cursor calls . + + + + + This indicates that this block does not contain any actual information, or + correspond to an actual block, but it will still contain the + index. Sentinel blocks are used to indicate that + there will be no more blocks to be decompressed along a particular pipe, + allowing the pipe worker to perform necessary cleanup. + + + + + Constructor for a sentinel compressed block. (For example, + the pipe's last block, which contains no valid data.) + + + + + Calls from the stream reader worker into will feed + into this collection, and calls from the decompress worker into + will consume this collection. + + + + + This indicates that this block does not contain any actual information, or + correspond to an actual block, but it will still contain the + index. Sentinel blocks are used to indicate that + there will be no more blocks to be decompressed along a particular pipe, + allowing the pipe worker to perform necessary cleanup. + + + + + Constructor for a sentinel compressed block. (For example, + the pipe's last block, which contains no valid data.) + + + + + This is called through reflection so it will appear to have no references. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Even in the case with no rows, there still must be valid delegates. This will return + a delegate that simply always throws. + + + + + This is a simple struct to associate a source index with a codec, without having to have + parallel structures everywhere. + + + + + Returns an appropriate generic WritePipe{T} for the given column. + + + + + A class useful for encapsulating both compressed and uncompressed block data. + As the mechanism the compress workers communicate with the writer worker, they + also have a dual usage if is non-null of indicating + a source worker threw an exception. + + + + + Take one guess. + + + + + The length of the block if uncompressed. This quantity is only intended to be + meaningful if the block data is compressed. + + + + + The column index, which is the index of the column as being written, which + may be less than the column from the source dataview if there were preceding + columns being dropped. + + + + + The block sequence number for this column, starting consecutively from 0. + + + + + Constructs a saver for a data view. + + + + + A helper method to query and write metadata to the stream. + + A binary writer, which if metadata exists for the + indicated column the base stream will be positioned just past the end of + the written metadata table of contents, and if metadata does not exist + remains unchanged + The schema to query for metadat + The column we are attempting to get metadata for + The channel to which we write any diagnostic information + The offset of the metadata table of contents, or 0 if there was + no metadata + + + + A utility method to save a column type to a stream, if we have a codec for that. + + The stream to save the description to + The type to save + The number of bytes written to the stream, which will + be zero if we could not save the stream + Returns if have the ability to save this column type. If we do, we write + the description to the stream. If we do not, nothing is written to the stream and + the stream is not advanced. + + + + Attempts to load a type description from a stream. In all cases, in the event + of a properly formatted stream, even if the type-descriptor is not recognized, + the stream will be at the end of that type descriptor. Note that any detected + format errors will result in a throw. + + The stream to load the type description from + A non-null value if the type descriptor was recognized, or null if + it was not + + + + A utility method to save a column type and value to a stream, if we have a codec for that. + + The stream to write the type and value to + The type of the codec to write and utilize + The value to encode and write + The number of bytes written + Whether the write was successful or not + + + + Attempts to load a type description and a value of that type from a stream. + + The stream to load the type description and value from + A non-null value if the type descriptor was recognized, or null if + it was not + A non-null value if the type descriptor was recognized and a value + read, or null if the type descriptor was not recognized + Whether the load of a type description and value was successful + + + + Deserializes and returns a value given a stream and codec. + + + + + This structure is utilized by both the binary loader and binary saver to hold + information on the location of blocks written to an .IDV binary file. + + + + The offset of the block into the file. + + + The byte length of the block on disk. + + + The byte length of the block if decompressed. + + + + Given a codec, write a type description to a stream, from which this codec can be + reconstructed later. This returns the number of bytes written, so that, if this + were a seekable stream, the positions would differ by this amount before and after + a call to this method. + + + + + Attempts to define a codec, given a stream positioned at the start of a serialized + codec type definition. + + The input stream, which whether this returns true or false + will be left at the end of the codec type definition + A codec castable to a generic IValueCodec{T} where + typeof(T)==codec.Type.RawType + Whether the codec type definition was understood. If true the codec has defined + value, and should be usable. If false, the name of the codec was unrecognized. Note that + malformed definitions are detected, this will throw instead of returning either true or + false. + + + + A convenient base class for value writers. + + + + + A convenient base class for value readers. + + + + + A simple codec is useful for those types with no parameterizations. + + + + + This codec is for use with types that have UnsafeTypeOps operations defined. + Generally, this corresponds to numeric types that can be safely blitted. + + + + + This is a boolean code that reads from a form that serialized + 1 bit per value. The old encoding (implemented by a different codec) + uses 2 bits per value so NA values can be supported. + + + + + A code indicating the kind of compression. It is supposed that each kind of compression is totally + sufficient to describe how a given stream should be decompressed. + + + + + Generate an appropriate wrapping compressing stream for the codec. This + stream will be closable and disposable, without closing or disposing of + the passed in stream. The scheme for compression is not in any way + parameterizable. + + The compression codec + The stream to which compressed data will be written + A stream to which the user can write uncompressed data + + + + Generate an appropriate wrapping decompressing stream for the codec. + + The compression codec + The stream from which compressed data will be written + A stream from which the user can read uncompressed data + + + + The fixed header size. This should not be changed even in future versions of the format. + + + + + The header must start with this signature. This number will + appear as the eight-byte sequence "CML\0DVB\0" if encoded in + little-endian. (CML DVB is meant to suggest CloudML DataView binary). + + + + + The file must end with this value. Is is simply the + byte-order-reversed version of the head signature. + + + + + The current version of the format this software can write. + + + + + The magic number of this file. + + + + + Indicates the version of the data file. + + + + + Indicates the minimum reader version that can interpret this file, possibly + with some data loss. + + + + + The offset to the table of contents structure where the column type definitions + are stored. + + + + + The eight-byte tail signature starts at this offset. So, the entire dataset + stream should be considered to have eight plus this value bytes. + + + + + The number of rows in this data file. + + + + + The number of columns in this data file. + + + + + A value codec encapsulates implementations capable of writing and reading data of some + type to and from streams. The idea is that one creates a codec using TryGetCodec + on the appropriate ColumnType, then opens multiple writers to write blocks of data + to some stream. The idea is that each writer or reader is called on some "manageable chunk" + of data. + + Codecs should be thread safe, though the readers and writers they spawn do not need to + be thread safe. + + + + + This is the codec's identifying name. This is utilized both by the codec factory's + WriteTypeDescription and TryGetCodec, for persisting and recovering + the codec, respectively. + + + + + Writes the codec parameterization to the stream. (The parameterization + is the third part of the codec type description, after the name, and length + of the parameterization.) + + The number of bytes written to the stream + + + + The column type for this codec. + + + + + The generic value codec. + + The type for which we can spawn readers and writers. + Note that Type.RawType == typeof(T). + + + + Returns a writer for this codec, capable of writing a series of values to a block + starting at the current position of the indicated writable stream. + + + + + Returns a reader for this codec, capable of reading a series of values to a block + starting at the current position of the indicated readable stream. + + Stream on which we open reader. + The number of items expected to be encoded in the block + starting from the current position of the stream. Implementors should, if + possible, throw if it seems if the block contains a different number of + elements. + + + + Finishes writing to the stream. No further values should be written using the + Write methods. Note that failure to commit does not leave the stream in + a defined state: something or nothing could have already been written to the + stream, and the writer has no facilities to "rewind" whatever writes it may + have performed. + + + + + Returns an estimate of the total length that would be written to the stream + were we to commit right now. This may be called very often in some circumstances, + so implementors should optimize for speed over accuracy. + + + + + A value writer on a particular type. The intent is that implementors of this will + be spawned from an , its write methods called some + number of times to write to the stream, and then Commit will be called when + all values have been written, the stream now being at the end of the written block. + + The intended usage of the value writers is that blocks are composed of some small + number of values (perhaps a few thousand), the idea being that a block is something + that should easily fit in main memory, both for reading and writing. Some writers + take advantage of this to organize their values for more efficient reading. + + + + + Writes a single value to the writer. + + + + + Writes a span of values. This should be equivalent to writing each element + singly, though possibly more efficient than such a naive implementation. + + + + + A value reader on a particular type. As with writers, implementors of this will be + spawned form an . Its read methods will be called some + number of times to read from the stream. The read methods should be used to read + precisely the same number of times as was written to the block. if you read more, + then the values returned past the last will be undefined, and in either case the + stream will be left in an undefined state. Implementors may optionally complain in + such a case, but many will not, so outside knowledge should be used by the user + to ensure bad behavior does not happen. (For example, if you have a writer that + just writes packed binary values with no descriptive information, the corresponding + read will have no ability to tell when it is supposed to "end.") + + + + + Moves to the next element. + + + + + Gets the current element. + + + + + Reads into an array of values. This should be roughly equivalent to calling MoveNext + then Get into an array on each element singly, though possibly more efficient than + such a naive implementation. It may also diverge from that, in that Get's behavior + before the next MoveNext is undefined when this function is called. + + + + + Given a byte size, returns an appropriate index to . + This is a non-decreasing function w.r.t. . + + + + + Write the data to the given stream. This requires that FetchData was previously called. + + + + + Returns the string representation of a separator: helpful if it's whitespace or a punctuation mark. + + + + + Converts a ReadOnlySpan to a StringBuilder using TextSaver escaping and string quoting rules. + + + + + The transposed loader reads the transposed binary format. This binary format, at a high level, is nothing more + than, for a dataview with "c" columns, "c+1" binary IDVs glued together. We call these sub-IDVs. The first of these, + the master sub-IDV stores the overall schema, and optionally the data in row-wise format. + + + + + + The fixed header size. This should not be changed even in future versions of the format. + + + + + The header must start with this signature. This number will + appear as the eight-byte sequence "XPOSEDDV" if encoded in + little-endian. (XPOSEDDV is meant to suggest transposed DataView). + + + + + The file must end with this value. Is is simply the + byte-order-reversed version of the head signature. + + + + + The current version of the format this software can write. + + + + + The magic number of this file. + + + + + Indicates the version of the data file. + + + + + Indicates the minimum reader version that can interpret this file, possibly + with some data loss. + + + + + The offset to the list of the directory of the sub-IDV structures. + + + + + The eight-byte tail signature starts at this offset. So, the entire dataset + stream should be considered to have eight plus this value bytes. + + + + + The number of rows. + + + + + The number of columns. There will be this + 1 entries in the sub-IDV table + offset structure. + + + + + A sub-IDV entry corresponds to an offset and length within the transposed file, that points + either to a block binary-IDV formatted data if the offset is positive, or indicates that there + is no corresponding IDV entry if the offset is zero. + + + + + Is true when this sub-IDV appears to exist, without actually loading that sub-IDV. + If this returns true, will either return a non-null + value, or throw some sort of formatting error. + + + + + Reads the table of contents entry from the file, advancing the binary loader stream. + + + + + Constructs an empty table of contents entry, with no offset. + + + + + Gets the dataview corresponding to this sub-IDV entry. This will + lazily load the file, if it has not previously been requested. This + will return null if the offset is 0. + + + + + Called once, to verify that the lazily read dataview is "correct." Called by + once it has been read. Any problems with the data-view + should be handle with or by throwing + , as we consider the views not adhering to + standards to be a file formatting issue. Note that this will never be called if + the offset field is zero. + + + + + This is the entry corresponding to the first IDV entry in the file, which will hold + at least the schema information for all columns. There should be one of these per + file. Optionally, this file can also hold the row-wise data stored as well, in case + the user wanted to have the hybrid row/slotwise store. For this one, it is illegal + for the offset to be zero. + + + + + This is the entry corresponding to the transposed columns. There will be one of + these per column, though some entries will not actually have a corresponding + dataview (for example, they will have an offset of 0) if the column was not one selected + for slot-wise transposition. + + + + + Returns an empty sub-IDV entry for the no-file case. + + + + + Low inclusive bound of versions this reader can read. + + + + + Upper inclusive bound of versions this reader can read. + + + + + Whether the master schema sub-IDV has the actual data. + + + + + Save a zero-row dataview that will be used to infer schema information, used in the case + where the tranpsose loader is instantiated with no input streams. + + + + + Initializes the transpose cursors and getters for a column. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Saver for a format that can be loaded using the . + + + + + + Constructs a saver for a data view. + + + + + This class represents a data loader that applies a transformer chain after loading. + It also has methods to save itself to a repository. + + + + + The underlying data loader. + + + + + The chain of transformers (possibly empty) that are applied to data upon loading. + + + + + Produce the data view from the specified input. + Note that 's are lazy, so no actual loading happens here, just schema validation. + + + + + Append a new transformer to the end. + + The new composite data loader + + + + An estimator class for composite data loader. + It can be used to build a 'trainable smart data loader', although this pattern is not very common. + + + + + Create a new loader estimator, by appending another estimator to the end of this loader estimator. + + + + + The output that will be produced by the loader. + + + + + Loads data from into an . + + The source from which to load data. + + + + Describes how an input column should be mapped to an column. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the column. + of the items in the column. + Index of the column. + + + + Initializes a new instance of the class. + + Name of the column. + of the items in the column. + The minimum inclusive index of the column. + The maximum-inclusive index of the column. + + + + Initializes a new instance of the class. + + Name of the column. + of the items in the column. + Source index range(s) of the column. + For a key column, this defines the range of values. + + + + Name of the column. + + + + + of the items in the column. + + + + + Source index or name range(s) of the column. + + + + + For a key column, this defines the range of values. + + + + + Specifies the range of indices or names of input columns that should be mapped to an output column. + + + + + A range representing a single value. Will result in a scalar column. + + The index of the field of the table to read. + + + + A range representing a single value. Will result in a scalar column. + + The name of the field of the table to read. + + + + A range representing a set of values. Will result in a vector column. + + The minimum inclusive index of the column. + The maximum-inclusive index of the column. + + + + The minimum index of the column, inclusive. + + + This value is ignored if is not null. + + + + + The maximum index of the column, inclusive. + + + This value is ignored if is not null. + + + + + The name of the input column. + + + This value, if non-null, overrides and . + + + + + Force scalar columns to be treated as vectors of length one. + + + + + The settings for + + + + + Specifies the input columns that should be mapped to columns. + + + + + Used as an input column range. + + + + + Information for an output column. + + + + + [i] stores the i-th column's name and type. Columns are loaded from the input database. + + + + + Construct a out of the DbType and the keyCount. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + Exposes the data required for opening a database for reading. + + + Creates a new instance of the class. + The factory used to create the .. + The string used to open the connection. + The text command to run against the data source. + + + Creates a new instance of the class. + The factory used to create the .. + The string used to open the connection. + The text command to run against the data source. + The timeout(in seconds) for database command. + + + Gets the timeout for database command. + + + Gets the text command to run against the data source. + + + Gets the string used to open the connection. + + + Gets the factory used to create the . + + + + Maps a to the associated .Net representation type. + + + + Maps a to the associated . + + + + Allow member to specify mapping to field(s) in database. + To override name of column use . + + + + + Maps member to specific field in database. + + The name of the field in the database. + + + + Maps member to set of fields in database. + + Distinct database field names to load as part of this column. + + + + Represents a chain (potentially empty) of estimators that end with a . + If the chain is empty, is always . + + + + + Create an empty estimator chain. + + + + + Append a 'caching checkpoint' to the estimator chain. This will ensure that the downstream estimators will be trained against + cached data. It is helpful to have a caching checkpoint before trainers or feature engineering that take multiple data passes. + It is also helpful to have after a slow operation, for example after dataset loading from a slow source or after feature + engineering that is slow on its apply phase, if downstream estimators will do multiple passes over the output of this operation. + Adding a cache checkpoint at the begin or end of an is meaningless and should be avoided. + Cache checkpoints should be removed if disk thrashing or OutOfMemory exceptions are seen, which can occur on when the featured + dataset immediately prior to the checkpoint is larger than available RAM. + + The host environment to use for caching. + + + + A fake schema that is manufactured out of a SchemaShape. + It will pretend that all vector sizes are equal to 10, all key value counts are equal to 10, + and all values are defaults (for annotations). + + + + + A data loader that wraps an underlying loader plus a sequence of transforms. + It is not valid to have nested 's: if a + is an underlying loader, the resulting loader will 'flatten' the structure. + The family of Create methods only instantiate 's + when there are transforms to keep, otherwise they just return underlying loaders. + + + + + Returns the underlying data view of the composite loader. + This can be used to programmatically explore the chain of transforms that's inside the composite loader. + + + + + Creates a loader according to the specified . + If there are transforms, then the result will be a , + otherwise, it'll be whatever is specified in args.loader. + + + + + Creates a that starts with the , + and follows with transforms created from the array. + If there are no transforms, the is returned. + + + + + Appends transforms to the and returns a loader that contains these new transforms. + If there are no transforms to append, returns intact, otherwise creates a + . The transforms are created by sequentially invoking the provided lambda, + one time for each element of . + + The host environment. + The source loader. + The array of (tag, creationInfo) pairs. Can be an empty array or null, in which case + the function returns . + The delegate to invoke at each transform creation. + Delegate parameters are: host environment, transform index (0 to tagData.Length), source data view. + It should return the that should share the same loader as the source data view. + The resulting data loader. + + + + Apply one transform to the data loader, and returns a (composite) data loader that contains the result. + The transform is created by invoking the lambda for a data source, and it should return an + that shares the same loader as the provided source. + + + + + Loads the entire composite data loader (loader + transforms) from the context. + If there are no transforms, the underlying loader is returned. + + + + + Creates a from the specified source loader, followed by + the transforms that are loaded from the , tags filtered by + by the . + If the contains no accepted transforms, the is + returned intact. + + + + + Loads all transforms from the that pass the test, + applies them sequentially to the , and returns the resulting data view. + If there are no transforms in that are accepted, returns the original . + The difference from the Create method above is that: + - it doesn't wrap the results into a loader, just returns the last transform in the chain. + - it accepts as input, not necessarily a loader. + - it throws away the tag information. + - it doesn't throw if the context is not representing a : in this case it's assumed that no transforms + meet the test, and the is returned. + Essentially, this is a helper method for the LoadTransform class. + + + + + Loads all transforms from the that pass the test, + applies them sequentially to the , and returns the (composite) data loader. + + + + + Save the loader and transforms (if any) to the repository. + This is intended to be used by API, where the components are not part of the same + . + + Environment context + The context to write to. + The code to save the loader. + The transforms. Empty list and null are both allowed. + + + + Wraps a potentially compound path as an IMultiStreamSource. + + Expands wild cards and supports multiple paths separated by +, or loads all the files of a subfolder, + if the syntax for the path is 'FolderPath/...' (separator would be OS relevant). + + + + + Initializes a new instance of . + In case of usage from Maml, the paths would be wildcard concatenated in the first string of . + + The paths of the files to load. + + The provided can utilize wildcards to load all source files. For example: + paths = "Data/*" includes all files in directory Data + paths = "DataFolder/.../*" includes all files in all subdirectories inside directory Data. + paths = "Data1/*", "Data2/*" includes all files in directories Data1 and Data2 + + + + + Wraps an as an IMultiStreamSource. + + + + Provides a thread-safe queue that supports blocking takes when empty and blocking adds when full. + Specifies the type of data contained. + + + The underlying queue storing all elements. + + + A semaphore that can be waited on to know when an item is available for taking. + + + A semaphore that can be waited on to know when space is available for adding. + + + Initializes the blocking queue. + The maximum number of items the queue may contain. + + + Cleans up all resources used by the blocking collection. + + + Adds an item to the blocking collection. + The item to add. + The time to wait, in milliseconds, or -1 to wait indefinitely. + + true if the item was successfully added; false if the timeout expired or if the collection were marked + as complete for adding before the item could be added. + + + + Tries to take an item from the blocking collection. + The item removed, or default if none could be taken. + The time to wait, in milliseconds, or -1 to wait indefinitely. + + true if the item was successfully taken; false if the timeout expired or if the collection is empty + and has been marked as complete for adding. + + + + + Gets an enumerable for taking all items out of the collection until + the collection has been marked as complete for adding and is empty. + + + + Mark the collection as complete for adding. + After this is called, no calls made on this queue will block. + + + + A basic monitor-based semaphore that, in addition to standard Wait/Release semantics, + also supports marking the semaphore as completed, in which case all waiters immediately + fail if there's no count remaining. + + + + The remaining count in the semaphore. + + + The number of threads currently waiting in Wait. + + + Initializes the semaphore with the specified initial count. + The initial count. + + + Gets whether the semaphore has been marked as completed. + + If completed, no calls to Wait will block; if no count remains, regardless of timeout, Waits will + return immediately with a result of false. + + + + Releases the semaphore once. + + + Blocks the current thread until it can enter the semaphore once. + The maximum amount of time to wait to enter the semaphore, or -1 to wait indefinitely. + true if the semaphore was entered; otherwise, false. + + + Marks the semaphore as completed, such that no further operations will block. + + + + Allow member to specify mapping to field(s) in text file. + To override name of column use . + + + + + Maps member to specific field in text file. + + The index of the field in the text file. + + + + Maps member to range of fields in text file. + + The starting field index, for the range. + The ending field index, for the range. + + + + Maps member to set of fields in text file. + + Distinct text file field indices to load as part of this column. + + + + Loads a text file into an IDataView. Supports basic mapping from input columns to columns. + + + + + Describes how an input column should be mapped to an column. + + + + + Describes how an input column should be mapped to an column. + + + + + Describes how an input column should be mapped to an column. + + Name of the column. + of the items in the column. + Index of the column. + + + + Describes how an input column should be mapped to an column. + + Name of the column. + of the items in the column. + The minimum inclusive index of the column. + The maximum-inclusive index of the column. + + + + Describes how an input column should be mapped to an column. + + Name of the column. + of the items in the column. + Source index range(s) of the column. + For a key column, this defines the range of values. + + + + Describes how an input column should be mapped to an column. + + Name of the column. + of the items in the column. + Source index range(s) of the column. + For a key column, this defines the range of values. + + + + Name of the column. + + + + + of the items in the column. It defaults to float. + Although is internal, 's information can be publicly accessed by . + + + + + of the items in the column. + + It's a public interface to access the information in an internal DataKind. + + + + Source index range(s) of the column. + + + + + For a key column, this defines the range of values. + + + + + Returns true iff the ranges are disjoint, and each range satisfies 0 <= min <= max. + + + + + Specifies the range of indices of input columns that should be mapped to an output column. + + + + + A range representing a single value. Will result in a scalar column. + + The index of the field of the text file to read. + + + + A range representing a set of values. Will result in a vector column. + + The minimum inclusive index of the column. + The maximum-inclusive index of the column. If null + indicates that the should auto-detect the legnth + of the lines, and read until the end. + + + + The minimum index of the column, inclusive. + + + + + The maximum index of the column, inclusive. If + indicates that the should auto-detect the legnth + of the lines, and read until the end. + If max is specified, the fields and are ignored. + + + + + Whether this range extends to the end of the line, but should be a fixed number of items. + If is specified, the fields and are ignored. + + + + + Whether this range extends to the end of the line, which can vary from line to line. + If is specified, the fields and are ignored. + If is , then is ignored. + + + + + Whether this range includes only other indices not specified. + + + + + Force scalar columns to be treated as vectors of length one. + + + + + The settings for + + + + + Whether the input may include double-quoted values. This parameter is used to distinguish separator characters + in an input value from actual separators. When , separators within double quotes are treated as part of the + input value. When , all separators, even those within quotes, are treated as delimiting a new column. + + + + + Whether the input may include sparse representations. For example, a row containing + "5 2:6 4:3" means that there are 5 columns, and the only non-zero are columns 2 and 4, which have values 6 and 3, + respectively. Column indices are zero-based, so columns 2 and 4 represent the 3rd and 5th columns. + A column may also have dense values followed by sparse values represented in this fashion. For example, + a row containing "1 2 5 2:6 4:3" represents two dense columns with values 1 and 2, followed by 5 sparsely represented + columns with values 0, 0, 6, 0, and 3. The indices of the sparse columns start from 0, even though 0 represents the third column. + + In addition, should be used when the number of sparse elements (5 in this example) is not present in each line. + It should specify the total size, not just the size of the sparse part. However, indices of the spars part are relative to where the sparse part begins. + If is set to 7, the line "1 2 2:6 4:3" will be mapped to "1 2 0 0 6 0 4", but if set to 10, the same line will + be mapped to "1 2 0 0 6 0 4 0 0 0". + + + + + Number of source columns in the text data. Default is that sparse rows contain their size information. + + + + + The characters that should be used as separators column separator. + + + + + The character that should be used as the decimal marker. Default value is '.'. Only '.' and ',' are allowed to be decimal markers. + + + + + Specifies the input columns that should be mapped to columns. + + + + + Wheter to remove trailing whitespace from lines. + + + + + Whether the file has a header with feature names. When , the loader will skip the first line when + is called. The sample can be used to infer slot name annotations if present. + + + + + Whether to use separate parsing threads. + + + + + If true, new line characters are acceptable inside a quoted field, and thus one field can have multiple lines of text inside it + If is false, this option is ignored. + + + + + File containing a header with feature names. If specified, the header defined in the data file is ignored regardless of . + + + + + Maximum number of rows to produce. + + + + + Character to use to escape quotes inside quoted fields. It can't be a character used as separator. + + + + + If true, missing real fields (i.e. double or single fields) will be loaded as NaN. + If false, they'll be loaded as 0. Default is false. + A field is considered "missing" if it's empty, if it only has whitespace, or if there are missing columns + at the end of a given row. + + + + + Checks that all column specifications are valid (that is, ranges are disjoint and have min<=max). + + + + + Used as an input column range. + A variable length segment (extending to the end of the input line) is represented by Lim == SrcLim. + + + + + Be careful with this ctor. lim == SrcLim means that this segment extends to + the end of the input line. If that is not the intent, pass in Min(lim, SrcLim - 1). + + + + + Defines a segment that extends from min to the end of input. + + + + + Information for an output column. + + + + + [i] stores the i-th column's name and type. Columns are loaded from the input text file. + + + + + [i] stores the i-th column's metadata, named + in . + + + + + Empty if is , no header presents, or upon load + there was no header stored in the model. + + + + + Option flags. These values are serialized, so changing the values requires + bumping the version number. + + + + + Loads a text file into an . Supports basic mapping from input columns to IDataView columns. + + The environment to use. + Defines the settings of the load operation. + Allows to expose items that can be used for loading. + + + + See if we can extract valid arguments from the first data file. If so, update options and set cols to the combined set of columns. + If not, set error to true if there was an error condition. + + + Not all arguments are extracted from the data file. There are three arguments that can vary from iteration to iteration and that are set + directly by the user in the options class. These three arguments are: + , + , + + + + + + Checks whether the source contains the valid TextLoader.Options depiction. + + + + + Convenience method to create a and use it to load a specified file. + + + + + The output that will be produced by the loader. + + + + + Loads data from into an . + + The source from which to load data. + + + + + + + + + Look in the first file for args embedded as comments. This gathers comments + that come before any data line that start with #@. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This type exists to provide efficient delegates for creating a ColumnValue specific to a DataKind. + + + + + Basic statistics and reporting of unparsable stuff. + + + + + Takes the number of blocks, number of rows per block, and number of columns. + + + + + This is info tracked while scanning a line to find "fields". For each line, the first + several values, Path, Line, LineText, IchMinText, and IchLimText, are unchanging, but the + remaining values are updated for each field processed. + + + + + Path for the input file containing the given line (may be null). + + + + + Line number. + + + + + The current text for the entire line (all fields), and possibly more. + + + + + The min position in to consider (all fields). + + + + + The lim position in to consider (all fields). + + + + + Where to start for the next field. This is both an input and + output to the code that fetches the next field. + + + + + The (unquoted) text of the field. + + + + + Whether there was a quoting error in the field. + + + + + For sparse encoding, this is the index of the field. Otherwise, -1. + + + + + The start character location in , including the sparse index + and quoting, if present. Used for logging. + + + + + The end character location in , including the sparse index + and quoting, if present. Used for logging. + + + + + Initializes the ScanInfo. + + + + + This holds a set of raw text fields. This is the input into the parsing + of the individual typed values. + + + + + Make sure there is enough space to add one more item. + + + + + Returns a of with trailing whitespace trimmed. + + + + + This is an abstraction containing all the useful stuff for splitting a raw line of text + into a FieldSet. A cursor has one of these that it passes in whenever it wants a line + parsed. + + + + + Check if the given char is a separator. + + + + + Process the line of text into fields, stored in the Fields field. Ensures that sparse + don't precede non-sparse. Returns the lim of the src columns. + + + + + This enum allows for 'tagging' the estimators (and subsequently transformers) in the chain to be used + 'only for training', 'for training and evaluation' etc. + Most notable example is, transformations over the label column should not be used for scoring, so the scope + should be or . + + + + + Used to determine if object is of type + so that its internal fields can be accessed. + + + + + A chain of transformers (possibly empty) that end with a . + For an empty chain, is always . + + + + + Create a transformer chain by specifying transformers and their scopes. + + Transformers to be chained. + Transformer scopes, parallel to . + + + + Create a transformer chain by specifying all the transformers. The scopes are assumed to be + . + + + + + + The loading constructor of transformer chain. Reverse of . + + + + + Saving/loading routines for transformer chains. + + + + + Save any transformer to a stream by wrapping it into a transformer chain. + + + + + This is a shim class to present the legacy interface as an . + Note that there are some important differences in usages that make this shimming somewhat non-seamless, so the goal + would be gradual removal of this as we do away with based code. + + + + + Estimator for trained wrapped transformers. + + + + + The trivial implementation of that already has + the transformer and returns it on every call to . + + Concrete implementations still have to provide the schema propagation mechanism, since + there is no easy way to infer it from the transformer. + + + + + The trivial wrapper for a that acts as an estimator and ignores the source. + + + + + This class provides the functionality to combine multiple IDataView objects which share the same schema + All sources must contain the same number of columns and their column names, sizes, and item types must match. + The row count of the resulting IDataView will be the sum over that of each individual. + + An AppendRowsDataView instance is shuffleable iff all of its sources are shuffleable and their row counts are known. + + + + + Create a dataview by appending the rows of the sources. + + All sources must be consistent with the passed-in schema in the number of columns, column names, + and column types. If schema is null, the first source's schema will be used. + + The host environment. + The schema for the result. If this is null, the first source's schema will be used. + The sources to be appended. + The resulting IDataView. + + + + Returns whether the given column is active in this row. + + + + + The deterministic cursor. It will scan through the sources sequentially. + + + + + A RandCursor will ask each subordinate cursor to shuffle itself. + Then, at each step, it randomly calls a subordinate to move next with probability (roughly) proportional to + the number of the subordinate's remaining rows. + + + + + Given k classes with counts (N_0, N_2, N_3, ..., N_{k-1}), the goal of this sampler is to select the i-th + class with probability N_i/M, where M = N_0 + N_1 + ... + N_{k-1}. + Once the i-th class is selected, its count will be updated to N_i - 1. + + For efficiency consideration, the sampling distribution is only an approximation of the desired distribution. + + + + + This is a class for composing an in memory IDataView. + + + + + Verifies that the input array to one of the add routines is of the same length + as previously added arrays, assuming there were any. + + + + + Constructs a new column from an array where values are copied to output simply + by being assigned. Output values are returned simply by being assigned, so the + type should be a type where assigning to a different + value does not compromise the immutability of the source object (so, for example, + a scalar, string, or ReadOnlyMemory would be perfectly acceptable, but a + HashSet or VBuffer would not be). + + + + + Constructs a new key column from an array where values are copied to output simply + by being assigned. + + The name of the column. + The delegate that does a reverse lookup based upon the given key. This is for annotation creation + The count of unique keys specified in values + The values to add to the column. Note that since this is creating a column, the values will be offset by 1. + + + + Creates a column with slot names from arrays. The added column will be re-interpreted as a buffer. + + + + + Creates a column from arrays. The added column will be re-interpreted as a buffer. + + + + + Creates a column with slot names from arrays. The added column will be re-interpreted as a buffer and possibly sparsified. + + + + + Creates a column from arrays. The added column will be re-interpreted as a buffer and possibly sparsified. + + + + + Adds a VBuffer{T} valued column. + + + + + Adds a VBuffer{T} valued column. + + + + + Adds a ReadOnlyMemory valued column from an array of strings. + + + + + Constructs a data view from the columns added so far. Note that it is perfectly acceptable + to continue adding columns to the builder, but these additions will not be reflected in the + returned dataview. + + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Produce the output value given the index. + + + + + Assigns dst in such a way that the caller has ownership of dst without + compromising this object's ownership of src. What that operation will be + will depend on the types. + + + + + Produce the output value given the index. This overload utilizes the CopyOut + helper function. + + + + + A column where the input and output types are the same, and simple assignment does + not compromise ownership of the internal vlaues. + + + + + A convenience column for converting strings into textspans. + + + + + A utility function for subclasses that want to get the type with a dimension based + on the input value array and some length function over the input type. + + + + + A column of buffers. + + + + + This is a dataview that wraps another dataview, and does on-demand caching of the + input columns. When constructed, it caches no data. Whenever a cursor is constructed + that requests a column that has not yet been cached, any requested uncached columns + become cached through a background thread worker. A user can provide a hint to the + constructor to indicate that some columns should be pre-cached. A cursor over this + dataview will block when moved to a row until such time as all requested columns + have that row in cache. + + + + + Cursors can be opened from multiple threads simultaneously, so this is used to + synchronize both at the level of ensuring that only one cache is created per + column. + + + + + Filler threads. Currently nothing is done with them. Possibly it may be good + practice to join against them somehow, but IDataViews as this stage are not + disposed, so it's unclear what would actually have the job of joining against + them. + + + + + One cache per column. If this column is not being cached or has been cached, + this column will be null. + + + + + A waiter used for cursors where no columns are actually requested but it's still + necessary to wait to determine the number of rows. + + + + + Constructs an on demand cache for the input. + + The host environment + The input dataview to cache. Note that if we do not know + how to cache some columns, these columns will not appear in this dataview. + A list of column indices the cacher should frontload, + prior to any cursors being requested. This can be null to indicate no + prefetching. + + + + Since shuffling requires serving up items potentially out of order we need to know + how to save and then copy out values that we read. This transform knows how to save + and copy out only primitive and vector valued columns, but nothing else, so any + other columns are dropped. + + + + + While in typical cases the cache data view will know how to cache all columns, + the cache data view may not know how to cache certain custom types. User code + may require a mapping from input data view to cache data view column index space. + + An input data column index + The column index of the corresponding column in the cache data view + if this was cachable, or else -1 if the column was not cachable + + + + Return the number of rows if available. + + + + + Returns a permutation or null. This function will return null if either + is null, or if the row count of this cache exceeds the maximum array size. + + + + + This is a helper method that, given a list of columns, determines the subset + that are uncached, and if there are any uncached kicks off a filler worker to + fill them in, over a row cursor over this subset of columns. + + The requested set of columns + + + + + The actual body of the filler worker. The filler worker works fairly simply: + for each row, it tells each instance in + to fill in the value at the current position, + then increments the , then moves to the next row. + When it's done, it tells to "freeze" itself, since + there should be no more rows. + The cursor over the rows to cache + The caches we must fill and, at the end of the cursor, freeze + The waiter to increment as we cache each additional row + + + + + Joins all the cache filler threads. This method is currently supposed to be called only by tests. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Blocks until that position is either available, or it has been + determined no such position exists. Implicit in a true return value + for this is that any values of less than are + also true, that is, if one waits on i, when this returns it + is equivalent to also having waited on i-1, i-2, etc. + Note that this is position within the cache, that is, a row index, + as opposed to position within the cursor. + + This method should be thread safe because in the parallel cursor + case it will be used by multiple threads. + + The position to wait for, must be positive + True if the position can be accessed, false if not + + + + A waiter for use in situations where there is no real waiting, per se, just a row limit. + This should be instantiated only if the analogous + returned true. + + + + + A waiter that determines the necessary waiters for a set of active columns, and waits + on all of them. + + + + + If this is true, then a could be used instead. + + + + + A collection of different simple objects that track the index into the cache at + particular location. Note that this index is, in the shuffled or parallel case, + very different from the position of the cursor that keeps this indexer. + + + + + The index. Callers should never call this either before one of the move + methods has returned true, or ever after either has returned false. + + + + + An ID getter, which should be based on the value that would be returned + from , if valid, and otherwise have undefined behavior. + + + + + Moves to the next index. Once this has returned false, it should never be called again. + (This in constrast to public objects, whose move methods are + robust to that usage.) + + Whether the next index is available. + + + + An where the indices, while valid, are sequential increasing + adjacent indices. + + + + + A simple job scheduler that assigns available jobs (batches/blocks for processing) to + free workers (cursors/threads). This scheduler takes the ids of the completed jobs into + account when assigning next jobs in order to minimize workers wait time as the consumer + of the completed jobs (a.k.a consolidator, see: DataViewUtils.ConsolidateGeneric) can + only consume jobs in order -according to their ids-. Note that workers get assigned + next job ids before they push the completed jobs to the consumer. So the workers are + then subject to being blocked until their current completed jobs are fully accepted + (i.e. added to the to-consume queue). + + How it works: + Suppose we have 7 workers (w0,..,w6) and 14 jobs (j0,..,j13). + Initially, jobs get assigned to workers using a shared counter. + Here is an example outcome of using a shared counter: + w1->j0, w6->j1, w0->j2, w3->j3, w4->j4, w5->j5, w2->j6. + + Suppose workers finished jobs in the following order: + w5->j5, w0->j2, w6->j1, w4->j4, w3->j3,w1->j0, w2->j6. + + w5 finishes processing j5 first, but will be blocked until the processing of jobs + j0,..,j4 completes since the consumer can consume jobs in order only. + Therefore, the next available job (j7) should not be assigned to w5. It should be + assigned to the worker whose job *get consumed first* (w1 since it processes j0 + which is the first job) *not* to the worker who completes its job first (w5 in + this example). + + So, a shared counter can be used to assign jobs to workers initially but should + not be used onwards. + + + + + An that shares a counter among multiple threads. The multiple threads divy up + the work by blocks of rows rather than splitting row by row simply, both to cut down on interthread + communication as well as increased locality of thread data access. + + + + + An that shares a counter among multiple threads. The multiple threads divy up + the work by blocks of rows rather than splitting row by row simply, to cut down on interthread + communication. + + + + + Returns whether the given column is active in this row. + + + + + A cache of values from a single column. The filler worker fills these in row + by row, and increments the associated waiter. The consumer for the cache + waits on the associated waiter (if non-null), then fetches values as it + determines rows are valid. + + + + + The ordered waiter on row indices, indicating when a row index is valid, + or null if it is no longer necessary to wait on this column, that is, + it is completely filled in. Multiple columns can share a single waiter + since often multiple columns are being cached simultaneously, so this + object is not unqiue to this column. + + + + + Creates a cache pipe, over a particular column in a cursor. + + The cache data view for which we are a cache + The cursor to read from + The column of the cursor we are wrapping. + The waiter for the filler associated with this column + + + + + Utilized by the filler worker, to fill in the cache at the current position of the cursor. + The filler worker will have moved the cursor to the next row prior to calling this, so + overrides will merely get the value at the current position of the cursor. + + + + + Utilized by the filler worker, to indicate to the cache that it will not be receiving + any more values through . + + + + + Utilized by the consumer to get a value in the cache at an index. The + consumer should coordinate with the member to ensure + that the row is valid. + + + + + A row-to-row mapper that is the result of a chained application of multiple mappers. + + + + + Out of a series of mappers, construct a seemingly unitary mapper that is able to apply them in sequence. + + The input schema. + The sequence of mappers to wrap. An empty or null argument + is legal, and counts as being a no-op application. + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + A helper class to create data views based on the user-provided types. + + + + + A row that consumes items of type , and provides an . This + is in contrast to which consumes a data view row and publishes them as the output type. + + The input data type. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + The base class for the data view over items of user-defined type. + + The user-defined data type. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Zero-based position of the cursor. + + + + + Convenience property for checking whether the cursor is in a good state where values + can be retrieved, that is, whenever is non-negative. + + + + + Core implementation of , called if no prior call to this method + has returned . + + + + + An in-memory data view based on the IList of data. + Supports shuffling. + + + + + An in-memory data view based on the IEnumerable of data. + Doesn't support shuffling. + + + + + This represents the 'infinite data view' over one (mutable) user-defined object. + The 'current row' object can be updated at any time, this will affect all the + newly created cursors, but not the ones already existing. + + + + + A single instance of annotation information, associated with a column. + + + + + The type of the annotation. + + + + + The string identifier of the annotation. Some identifiers have special meaning, + like "SlotNames", but any other identifiers can be used. + + + + + Strongly-typed version of , that contains the actual value of the annotation. + + Type of the annotation value. + + + + Constructor for annotation of value type T. + + The string identifier of the annotation. Some identifiers have special meaning, + like "SlotNames", but any other identifiers can be used. + Annotation value. + Type of the annotation. + + + + Get a row cursor. The are the active columns. + The schema of the returned cursor will be the same as the schema of the IDataView, but getting + a getter for an inactive columns will throw. + + The columns requested by this , or as otherwise called, the active columns. + An empty collection indicates that no column is needed. + The containing the . + + + + Get a row cursor. The is the active column. + The schema of the returned cursor will be the same as the schema of the IDataView, but getting + a getter for the other, inactive columns will throw. + + The column requested by this , or as otherwise called, the active column. + The containing the . + + + + Get a row cursor. No colums are needed by this . + + + + + Get a row cursor including all the columns of the . + + + + + Extension method. + + + + + + + + + This implements a data view that has a schema, but no rows. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + An internal class that holds the (already validated) mapping between a custom type and an IDataView schema. + + + + + Function that checks whether the InternalSchemaDefinition.Column is a valid one. + To be valid, the Column must: + 1. Have non-empty values for ColumnName and ColumnType + 2. Have a non-empty value for FieldInfo iff it is a field column, else + ReturnParameterInfo and Generator iff it is a computed column + 3. Generator must have the method inputs (TRow rowObject, + long position, ref TValue outputValue) in that order. + + + + + Given a field or property info on a type, returns whether this appears to be a vector type, + and also the associated data kind for this type. If a valid data type could not + be determined, this will throw. + + The field or property info to inspect. + Whether this appears to be a vector type. + + The corresponding RawType of the type, or items of this type if vector. + + + + + Given a type and name for a variable, returns whether this appears to be a vector type, + and also the associated data type for this type. If a valid data type could not + be determined, this will throw. + + The name of the variable to inspect. + The type of the variable to inspect. + Attribute of . It can be if attributes don't exist. + Whether this appears to be a vector type. + + The corresponding RawType of the type, or items of this type if vector. + + + + + This applies the user provided ValueMapper to a column to produce a new column. It automatically + injects a standard conversion from the actual type of the source column to typeSrc (if needed). + + + + + This applies the user provided RefPredicate to a column and drops rows that map to false. It automatically + injects a standard conversion from the actual type of the source column to typeSrc (if needed). + + + + + Opaque IDataView implementation to provide a barrier for data pipe optimizations. + Used in cross validatation to generate the train/test pipelines for each fold. + + + + + This interface is used to create a . + Implementations should be given an in their constructor, and should have a + ctor or Create method with , along with a corresponding + . + + + + + Returns the input columns needed for the requested output columns. + + + + + Returns the getters for the output columns given an active set of output columns. The length of the getters + array should be equal to the number of columns added by the IRowMapper. It should contain the getter for the + i'th output column if activeOutput(i) is true, and null otherwise. If creating a or + out of this, the delegate (if non-null) should be called + from the dispose of either of those instances. + + + + + Returns information about the output columns, including their name, type and any metadata information. + + + + + DO NOT USE IT! + Purpose of this method is to enable legacy loading and unwrapping of RowToRowTransform. + It should be removed as soon as we get rid of + Returns parent transfomer which uses this mapper. + + + + + This class is a transform that can add any number of output columns, that depend on any number of input columns. + It does so with the help of an , that is given a schema in its constructor, and has methods + to get the dependencies on input columns and the getters for the output columns, given an active set of output columns. + + + + + Produces the set of active columns for the data view (as a bool[] of length bindings.ColumnCount), + and the needed active input columns, given a predicate for the needed active output columns. + + + + + Given a set of output columns, return the input columns that are needed to generate those output columns. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + An implementation of that gets its , , + and from an input row. The constructor requires a schema and array of getter + delegates. A delegate indicates an inactive column. The delegates are assumed to be + of the appropriate type (this does not validate the type). + REVIEW: Should this validate that the delegates are of the appropriate type? It wouldn't be difficult + to do so. + + + + + Constructor. + + The schema for the row. + The row that is being wrapped by this row, where our , + , . + The collection of getter delegates, whose types should map those in a schema. + If one of these is , the corresponding column is considered inactive. + A method that, if non-null, will be called exactly once during + , prior to disposing . + + + + Returns whether the given column is active in this row. + + + + + This provides a scalable method of getting a "transposed" view of a subset of columns from an + . Instances of act like a wrapped version of + the input dataview, except that an indicated set of columns will be transposable, even if they + were not transposable before. Note that transposition is a somewhat slow and resource intensive + operation. + + + + + Creates an instance given a list of column names. + + The host environment + The view whose columns we want to transpose + Whether the internal transposer should always unconditionally + save the column we are transposing. Can be useful if the original dataview is possibly + slow to iterate over that column. + The non-empty list of columns to transpose + + + + Creates an instance given a list of column indices. + + The host environment + The view whose columns we want to transpose + Whether the internal transposer should always unconditionally + save the column we are transposing. Can be useful if the original dataview is possibly + slow to iterate over that column. + The non-empty list of columns to transpose + + + + Constructs a slot cursor. + + The transposer. + The index of the transposed column. + + + + Ensures that the column from the source data view stored in our intermediate buffers is the + current column requested. + + + + + This takes an input data view, and presents a dataset with "sliced" up columns + that are partitionings of the original columns. Scalar columns and sufficiently + small vector columns are just served up as themselves. The idea is that each of + those slices should be small enough that storing an entire column in memory. + + + + + Given the index of a column we were told to split, get the corresponding range out output + ranges. + + The index into the array of column indices. + The minimum output column index corresponding to that split column + The exclusive limit of the output column index corresponding to that + split column + + + + Given an output column index, find which spliter produces it and which spliter column is its source. + + An output column index + [splitInd] produces the specified output column. + The specified output column is the splitCol-th column among columns produced by [splitInd]. + + + + Given a possibly null predicate for this data view, produce the dependency predicate for the sources, + as well as a list of all the splitters for which we should produce rowsets. + + The predicate input into the method. + A boolean indicator array of length equal to the number of splitters, + indicating whether that splitter has any active columns in its outputs or not + The predicate to use when constructing the row cursor from the source + + + + There is one instance of these per column, implementing the possible splitting + of one column from a into multiple columns. The instance + describes the resulting split columns through , + and then can be bound to an to provide that splitting functionality. + + + + + Output schema of a splitter. A splitter takes a column from input data and then divide it into multiple columns + to form its output data. + + + + + Creates a splitter for a given row. + + + + + Given an input , create the containing the split + version of the columns. + + + + + A splitter that doesn't split, just passes through the column contents. + Useful for when we've been told to "split" a column that we don't need + to split. + + + + + This is NoSplitter. Thus, the column, indexed by col, which supposes to be splitted will just be copied to an output + column without splitting. + + Input data whose columns can be splitted. + The selected column's index. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This splitter enables the partition of a single column into two or more + columns. + + + + + Provide a column partitioner that partitions a vector column into multiple + vector columns. + + The view where we are slicing one column + The column we are slicing + Equal in length to the number of slices, this is + the limit of the indices of each slice, where the successive slice + starts with that limit as its minimum index. So slice i comes from + source slot indices from [i-1] inclusive to + [i] exclusive, with slice 0 starting at 0. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + The cursor implementation creates the s using , + then collates the results from those rows as effectively one big row. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This is a convenience method that extracts a single slot value's vector, + while simultaneously verifying that there is exactly one value. + + + + + The is parameterized by a type that becomes the + type parameter for a , and this is generally preferable and more + sensible but for various reasons it's often a lot simpler to have a get-getter be over + the actual type returned by the getter, that is, parameterize this by the actual + type. + + The type, must be a generic type, + though enforcement of this has to be done only at runtime for practical reasons + The cursor to get the getter for + The exception contxt + The value getter + + + + Given a slot cursor, construct a single-column equivalent row cursor, with the single column + active and having the same type. This is useful to exploit the many utility methods that exist + to handle and but that know nothing about + , without having to rewrite all of them. This is, however, rather + something of a hack; whenever possible or reasonable the slot cursor should be used directly. + The name of this column is always "Waffles". + + The channel provider used in creating the wrapping row cursor + The slot cursor to wrap + A row cursor with a single active column with the same type as the slot type + + + + Presents a single transposed column as a single-column dataview. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This interface is an with 'strongly typed' binding. + It can populate the user-supplied object's fields with the values of the current row. + + The user-defined type that is being populated while cursoring. + + + + Populates the fields of the user-supplied object with the values of the current row. + + The row object. Cannot be null. + + + + This interface provides cursoring through a via a 'strongly typed' binding. + It can populate the user-supplied object's fields with the values of the current row. + + The user-defined type that is being populated while cursoring. + + + + This interface allows to create strongly typed cursors over a . + + The user-defined type that is being populated while cursoring. + + + + Get a new cursor. + + + + + Get a new randomized cursor. + + The random seed to use. + + + + Implementation of the strongly typed Cursorable. + Similarly to the 'DataView{T}, this class uses IL generation to create the 'poke' methods that + write directly into the fields of the user-defined type. + + + + + Returns whether the column type can be bound to field . + They must both be vectors or scalars, and the raw data type should match. + + + + + Create and return a new cursor. + + + + + Create and return a new randomized cursor. + + The random seed to use. + + + + Create a new cursor with additional active columns. + + Predicate that denotes which additional columns to include in the cursor, + in addition to the columns that are needed for populating the object. + The random seed to use. If null, the cursor will be non-randomized. + + + + Create a set of cursors with additional active columns. + + Predicate that denotes which additional columns to include in the cursor, + in addition to the columns that are needed for populating the object. + Number of cursors to create + Random generator to use + + + + Create a Cursorable object on a given data view. + + Host environment. + The underlying data view. + Whether to ignore missing columns in the data view. + The optional user-provided schema. + The constructed Cursorable. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Utility methods that facilitate strongly-typed cursoring. + + + + + Generate a strongly-typed cursorable wrapper of the . + + The user-defined row type. + The environment. + The underlying data view. + Whether to ignore the case when a requested column is not present in the data view. + Optional user-provided schema definition. If it is not present, the schema is inferred from the definition of T. + The cursorable wrapper of . + + + + A convenience class for concatenating several schemas together. + This would be necessary when combining IDataViews through any type of combining operation, for example, zip. + + + + + Returns an array of input predicated for sources, corresponding to the input predicate. + The returned array size is equal to the number of sources, but if a given source is not needed at all, + the corresponding predicate will be null. + + + + + Checks whether the column index is in range. + + + + + This is a data view that is a 'zip' of several data views. + The length of the zipped data view is equal to the shortest of the lengths of the components. + + + + + Create an with no requested columns on a data view. + Potentially, this can be optimized by calling GetRowCount(lazy:true) first, and if the count is not known, + wrapping around GetCursor(). + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Helper base class for building feature vectors (sparse or dense). Note that this is abstract + with some of the esoteric stuff "protected" instead of "public". This is so callees can't + abuse an instance of it. + + + + + This resets the FeatureSet to be used again. This functionality is for memory + efficiency - we can keep pools of these to be re-used. + Dense indicates whether this should start out dense. It can, of course, + become dense when it makes sense to do so. + + + + + This sets the active sub-range of the feature index space. For example, when asking + a feature handler to add features, we call this so the feature handler can use zero-based + indexing for the features it is generating. This also prohibits the feature handler from + messing with a different index range. Note that this is protected so a non-abstract derived + type can choose how to use it, but a feature handler can't directly mess with the active + range. + + The min feature index of the active range + The number of feature indices in the active range + + + + Adds a feature to the current active range. If the index is a duplicate, this adds the + given value to any previously provided value(s). + + + + + Sort the indices/values (by index) and sum the values for duplicate indices. This asserts that + _sorted is false and _dense is false. It also asserts that _count > 1. + + + + + Convert a sorted non-dense representation to dense. + + + + + Try to get the value for the given feature. Returns false if the feature index is not found. + Note that this respects the "active range", just as AddFeature does. + + + + + This type exists to provide efficient delegates for conversion between standard ColumnTypes, + as discussed in the IDataView Type System Specification. This is a singleton class. + Some conversions are "standard" conversions, conforming to the details in the spec. + Others are auxiliary conversions. The use of auxiliary conversions should be limited to + situations that genuinely require them and have been well designed in the particular context. + For example, this contains non-standard conversions from the standard primitive types to + text (and StringBuilder). These are needed by the standard TextSaver, which handles + differences between sparse and dense inputs in a semantically invariant way. + + + + + Return a standard conversion delegate from typeSrc to typeDst. If there is no such standard + conversion, this throws an exception. + + + + + Determine whether there is a standard conversion from typeSrc to typeDst and if so, + set conv to the conversion delegate. The type parameters TSrc and TDst must match + the raw types of typeSrc and typeDst. + + + + + Return a standard conversion delegate from typeSrc to typeDst. If there is no such standard + conversion, this throws an exception. + + + + + Determine whether there is a standard conversion from typeSrc to typeDst and if so, + set conv to the conversion delegate. + + + + + Returns the NA value of the given type, if it has one, otherwise, it returns + default of the type. This only knows about NA values of standard scalar types + and key types. + + + + + Returns the NA value of the given type, if it has one, otherwise, it returns + default of the type. This only knows about NA values of standard scalar types + and key types. Returns whether the returned value is the default value or not. + + + + + Returns a ValueGetter{T} that produces the NA value of the given type, if it has one, + otherwise, it produces default of the type. This only knows about NA values of standard + scalar types and key types. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + + + + + A parse method that transforms a 34-length string into a . + + What should be a 34-length hexadecimal representation, including a 0x prefix, + of the 128-bit number + The result + Whether the input string was parsed successfully, that is, it was exactly length 32 + and had only digits and the letters 'a' through 'f' or 'A' through 'F' as characters + + + + Return true if the span contains a standard text representation of NA + other than the standard TX missing representation - callers should + have already dealt with that case and the case of empty. + The standard representations are any casing of: + ? NaN NA N/A + + + + + Utility to assist in parsing key-type values. The max value defines + the legal input value bound. The output dst value is "normalized" by adding 1 + so max is mapped to 1 + max. + Unparsable or out of range values are mapped to zero with a false return. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + On failure, it sets dst to the default value. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + On failure, it sets dst to the default value. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + On failure, it sets dst to the defualt value. + + + + + This produces zero for empty. It returns false if the text is not parsable or overflows. + On failure, it sets dst to the default value. + + + + + Returns false if the text is not parsable as an non-negative long or overflows. + + + + + This produces zero for empty. It returns false if the text is not parsable as a signed integer + or the result overflows. The min legal value is -max. The NA value null. + When it returns false, result is set to the NA value. The result can be NA on true return, + since some representations of NA are not considered parse failure. + + + + + This produces zero for empty, or NaN depending on the used. + It returns false if the text is not parsable. + On failure, it sets dst to the NA value. + + + + + This produces zero for empty, or NaN depending on the used. + It returns false if the text is not parsable. + On failure, it sets dst to the NA value. + + + + + This produces default for empty. + + + + + This produces default for empty. + + + + + This produces default for empty. + + + + + Try parsing a TX to a BL. This returns false for NA (span.IsMissing). + Otherwise, it trims the span, then succeeds on all casings of the strings: + * false, f, no, n, 0, -1, - => false + * true, t, yes, y, 1, +1, + => true + Empty string (but not missing string) succeeds and maps to false. + + + + + A singleton class for managing the map between ML.NET and C# . + To support custom column type in , the column's underlying type (e.g., a C# class's type) + should be registered with a class derived from . + + + + + Types have been used in ML.NET type systems. They can have multiple-to-one type mapping. + For example, UInt32 and Key can be mapped to . This class enforces one-to-one mapping for all + user-registered types. + + + + + Mapping from a plus its s to a . + + + + + Mapping from a to a plus its s. + + + + + The lock that one should acquire if the state of will be accessed or modified. + + + + + Returns the registered for and its . + + + + + If has been registered with a , this function returns . + Otherwise, this function returns . + + + + + If has been registered with a , this function returns . + Otherwise, this function returns . + + + + + This function tells that should be representation of data in in + ML.NET's type system. The registered must be a standard C# object's type. + + Native type in C#. + The corresponding type of in ML.NET's type system. + The s attached to . + + + + This function tells that should be representation of data in in + ML.NET's type system. The registered must be a standard C# object's type. + + Native type in C#. + The corresponding type of in ML.NET's type system. + The attached to . + + + + An instance of represents an unique key of its and . + + + + + The underlying type. + + + + + The underlying type's attributes. Together with , uniquely defines + a key when using as the key type in . Note that the + uniqueness is determined by and below. + + + + + This function computes a hashing ID from and attributes attached to it. + If a type is defined as a member in a , can be obtained by calling + . + + + + + Generate a unique temporary column name for the given schema. + Use tag to independently create multiple temporary, unique column + names for a single transform. + + + + + Generate n unique temporary column names for the given schema. + Use tag to independently create multiple temporary, unique column + names for a single transform. + + + + + Get the row count from the input view by any means necessary, even explicit enumeration + and counting if insists on returning null. + + + + + Get the target number of threads to use, given an indicator of thread count. + + + + + Try to create a cursor set from upstream and consolidate it here. The host determines + the target cardinality of the cursor set. + + + + + From the given input cursor, split it into a cursor set with the given + cardinality. If not all the active columns are cachable, this will only + produce the given input cursor. + + + + + Return whether all the active columns, as determined by the predicate, are + cachable - either primitive types or vector types. + + + + + Return whether all the active columns, as determined by the predicate, are + cachable - either primitive types or vector types. + + + + + Determine whether the given type is cachable - either a primitive type or a vector type. + + + + + Tests whether the cursors are mutually compatible for consolidation, + that is, they all are non-null, have the same schemas, and the same + set of columns are active. + + + + + Given a parallel cursor set, this consolidates them into a single cursor. The batchSize + is a hint used for efficiency. + + + + + A convenience class to facilitate the creation of a split, as well as a convenient + place to store shared resources that can be reused among multiple splits of a cursor + with the same schema. Since splitting also returns a consolidator, this also contains + a consolidating logic. + + In a very rough sense, both the splitters and consolidators are written in the same way: + For all input cursors, and all active columns, an "in pipe" is created. A worker thread + per input cursor busily retrieves values from the cursors and stores them in the "in + pipe." At appropriate times, "batch" objects are synthesized from the inputs consumed + thusfar, and inserted into a blocking collection. The output cursor or cursors likewise + have a set of "out pipe" instances, one per each of the active columns, through which + successive batches are presented for consumption by the user of the output cursors. Of + course, both split and consolidate have many details from which they differ, for example, the + consolidator must accept batches as they come and reconcile them among multiple inputs, + while the splitter is more free. + + It is ideal if a data view that could be split retains one of these objects itself, + so that multiple splittings will have the capability of sharing buffers from cursoring + to cursoring, but this is not required. + + + + + Pipes, in addition to column values, will also communicate extra information + enumerated within this. This enum serves the purpose of providing nice readable + indices to these "extra" information in pipes. + + + + + An in pipe creator intended to be used from the splitter only. + + + + + An in pipe creator intended to be used from the splitter only. + + + + + There is one of these created per input cursor, per "channel" of information + (necessary channels include values from active columns, as well as additional + side information), in both splitting and consolidating. This is a running buffer + of the input cursor's values. It is used to create objects. + + + + + Creates an out pipe corresponding to the in pipe. This is useful for the splitter, + when we are creating an in pipe. + + + + + These are objects continuously created by the to spin off the + values they have collected. They are collected into a + object, and eventually one is consumed by an instance. + + + + + This holds a collection of objects, which together hold all + the values from a set of rows from the input cursor. These are produced as needed + by the input cursor reader, and consumed by each of the output cursors. + + This class also serves a secondary role in marshalling exceptions thrown in the workers + producing batches, into the threads consuming these batches. + lets us know if this is one of these "special" batches. + If it is, then the method will throw whenever it is called, by the + consumer of the batches. + + + + + Construct a batch object to communicate the objects to consumers. + + + + + Construct a batch object to communicate that something went wrong. In this case all other fields + will have default values. + + + + + Gives all of the batch columns to the output pipes. This should be called only once, + per batch object, because the the batch columns will be returned to the pool. + + If this was an exception bearing batch, that exception will be propagated and thrown + in this. + + + + + This helps a cursor present the results of a . Practically its role + really is to just provide a stable delegate for the . + There is one of these created per column, per output cursor, i.e., in splitting + there are n of these created per column, and when consolidating only one of these + is created per column. + + + + + Creates an in pipe corresponding to this out pipe. Useful for the consolidator, + when we are creating many in pipes from a single out pipe. + + + + + Sets this to start presenting the output of a batch column. + Note that this positions the output on the first item, not before the first item, + so it is not necessary to call to get the first value. + + The batch column whose values we should start presenting. + + + + Moves to the next value. Note that this should be called only when we are certain that + we have a next value to move to, that is, when is non-zero. + + + + + A cursor used by both the splitter and consolidator, that iteratively consumes + objects from the input blocking collection, and yields the + values stored therein through the help of objects. + + + + + Constructs one of the split cursors. + + The channel provider. + The schema. + The mapping from active indices, to input column indices. + The reverse mapping from input column indices to active indices, + where -1 is present if this column is not active. + The output pipes, one per channel of information + + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This is a consolidating cursor that is usable even with cursors that are uncachable, + at the cost of being totally synchronous, that is, there is no parallel benefit from + having split the input cursors. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + An interface for exposing some number of items that can be opened for reading. + + REVIEW: Reconcile this with the functionality exposed by IHostEnvironment. For example, + we could simply replace this with an array of IFileHandle. + + + + Gets the number of items. + + + + + Return a string representing the "path" to the index'th stream. May return null. + + + + + Opens the indicated item and returns a readable stream on it. + + + + + Opens the indicated item and returns a text stream reader on it. + + REVIEW: Consider making this an extension method. + + + + Signature for creating an . + + + + + Signature for loading an . + + + + + Interface for a data loader. An can save its model information + and is instantiatable from arguments and an . + + + + + Check if the column can be saved. + + True if the column is savable. + + + + Save the data into the given stream. The stream should be kept open. + + The stream that the data will be written. + The data to be saved. + The list of column indices to be saved. + + + + Signature for creating an . + + + + + Signature for loading an . + + + + + Interface for a data transform. An can save its model information + and is instantiatable from arguments and an input . + + + + + Data transforms need to be able to apply themselves to a different input IDataView. + This interface allows them to implement custom rebinding logic. + + + + + Represents a data view that supports random access to a specific row. + + + + + Represents a row seeker with random access that can retrieve a specific row by the row index. + For , when the state is valid (that is when + returns ), it returns the current row index. Otherwise it's -1. + + + + + Moves the seeker to a row at a specific row index. + If the row index specified is out of range (less than zero or not less than the + row count), it returns false and sets its Position property to -1. + + The row index to move to. + True if a row with specified index is found; false otherwise. + + + + A view of data where columns can optionally be accessed slot by slot, as opposed to row + by row in a typical dataview. A slot-accessible column can be accessed with a slot-by-slot + cursor via an returned by + (naturally, as opposed to row-by-row through an ). This interface + is intended to be implemented by classes that want to provide an option for an alternate + way of accessing the data stored in a . + + The interface only advertises that columns may be accessible in slot-wise fashion. The i-th column + is accessible in this fashion iff with col=i doesn't return . + + + + + Presents a cursor over the slots of a transposable column, or throws if the column + is not transposable. + + + + + (input argument is named col) specifies the type of all values at the col-th column of + . For example, if [i] is a scalar float column, then + with col=i may return a whose + field is . If the i-th column can't be iterated column-wisely, this function may + return . + + + + + Returns an appropriate for a row given an active column + index, but as a delegate. The type parameter for the delegate will correspond to the + raw type of the column. + + The row to get the getter for + The column index, which must be active on that row + The getter as a delegate + + + + Given a destination type, , and column index, return a ValueGetter for the column + with a conversion to typeDst, if needed. This is a weakly typed version of + . + + + + + + Given a destination type, , and column index, return a ValueGetter{TDst} for the column + with a conversion to typeDst, if needed. + + + + + Given a , and column index, return a function that utilizes the + on the input + rows to map the values in the column, whatever type they may be, into a string + builder. This method will obviously succeed only if there is a string conversion + into the required type. This method can be useful if you want to output a value + as a string in a generic way, but don't really care how you do it. + + + + + Given the item type, typeDst, a row, and column index, return a ValueGetter for the vector-valued + column with a conversion to a vector of typeDst, if needed. This is the weakly typed version of + . + + + + + Given the item type, typeDst, a row, and column index, return a ValueGetter{VBuffer{TDst}} for the + vector-valued column with a conversion to a vector of typeDst, if needed. + + + + + Given the item type, typeDst, and a slot cursor, return a ValueGetter{VBuffer{TDst}} for the + vector-valued column with a conversion to a vector of typeDst, if needed. + + + + + A convenience wrapper to generalize the operation of fetching a . + + + + + This method returns a small helper delegate that returns whether we are at the start + of a new group, that is, we have just started, or the key-value at indicated column + is different than it was, in the last call. This is practically useful for determining + group boundaries. Note that the delegate will return true on the first row. + + + + + Fetches the value of the column by name, in the given row. + Used by the evaluators to retrieve the metrics from the results IDataView. + + + + + Given a row, returns a one-row data view. This is useful for cases where you have a row, and you + wish to use some facility normally only exposed to dataviews. (For example, you have an + but want to save it somewhere using a .) + Note that it is not possible for this method to ensure that the input does not + change, so users of this convenience must take care of what they do with the input row or the data + source it came from, while the returned dataview is potentially being used. + + An environment used to create the host for the resulting data view + A row, whose columns must all be active + A single-row data view incorporating that row + + + + Given a collection of , that is a subset of the Schema of the data, create a predicate, + that when passed a column index, will return true or false, based on whether + the column with the given is part of the . + + The subset of columns from the that are needed from this . + The from where the columnsNeeded originate. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + This is an error message meant to be used in the situation where a user calls a delegate as returned from + or . + + + + + Extension methods to facilitate easy consumption of popular contents of . + + + + + Returns if the input column is of , and that has + SlotNames annotation of a whose + is of , and further whose matches + this input vector size. + + The column whose will be queried. + + + + + Stores the slots names of the input column into the provided buffer, if there are slot names. + Otherwise it will throw an exception. + + + The column whose will be queried. + The into which the slot names will be stored. + + + + Returns if the input column is of , and that has + SlotNames annotation of a whose + is of , and further whose matches + this input vector size. + + The column whose will be queried. + The type of the individual key-values to query. A common, + though not universal, type to provide is , so if left unspecified + this will be assumed to have the value . + + + + + Stores the key values of the input column into the provided buffer, if this is of key type and whose + key values are of whose matches + . If there is no matching key valued annotation this will throw an exception. + + The type of the key values. + The column whose will be queried. + The into which the key values will be stored. + + + + Returns if and only if has IsNormalized annotation + set to . + + + + + Allow member to be marked as a . + + + Can be applied only for member of following types: , , , + + + + + Marks member as . + + + Cardinality of would be maximum legal value of member type. + + + + + Marks member as and specifies cardinality. + In case of the attribute being used with int types, the should be set to one more than + the maximum value to account for counting starting at 1 (0 is reserved for the missing KeyType). E.g the cardinality of the + 0-9 range is 10. + If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0. + + Cardinality of . + + + + The key count. + + + + + Allows a member to be marked as a , primarily allowing one to set + the dimensionality of the resulting array. + + + + + The length of the vectors from this vector valued field. + + + + + Mark member as single-dimensional array with unknown size. + + + + + Mark member as single-dimensional array with specified size. + + Expected size of array. A zero value indicates that the vector type is considered to have unknown length. + + + + Mark member with expected dimensions of array. Notice that this attribute is expected to be added to one dimensional arrays, + and it shouldn't be added to multidimensional arrays. Internally, ML.NET will use the shape information provided as the + "dimensions" param of this constructor, to use it as a multidimensional array. + + Dimensions of array. All values should be non-negative. + A zero value indicates that the vector type is considered to have unknown length along that dimension. + + + + Allows a member to specify column name directly, as opposed to the default + behavior of using the member name as the column name. + + + + + Column name. + + + + + Allows one to specify a name to expose this column as, as opposed to the default + behavior of using the member name as the column name. + + + + + Mark this member as not being exposed as a column in the . + + + + + Mark a member that implements exactly IChannel as being permitted to receive + channel information from an external channel. + + + + + When passed some object, and a channel, it attempts to pass the channel to the object. It + passes the channel to the object iff the object has exactly one field marked with the + CursorChannelAttribute, and that field implements only the IChannel interface. + + The function returns the modified object, as well as a boolean indicator of whether it was + able to pass the channel to the object. + + The object that attempts to acquire the channel. + The channel to pass to the object. + The exception context. + 1. A boolean indicator of whether the channel was successfully passed to the object. + 2. The object passed in (only modified by the addition of the channel to the field + with the CursorChannelAttribute, if the channel was added successfully). + + + + This class defines a schema of a typed data view. + + + + + One column of the data view. + + + + + The name of the member the column is taken from. The API + requires this to not be null, and a valid name of a member of + the type for which we are creating a schema. + + + + + The name of the column that's created in the data view. If this + is null, the API uses the . + + + + + The column type. If this is null, the API attempts to derive a type + from the member's type. + + + + + The generator function. if the column is computed. + + + + + Add annotation to the column. + + Type of annotation being added. Types sported as entries in columns + are also supported as entries in Annotations. Multiple annotations may be added to one column. + + The string identifier of the annotation. + Value of annotation. + Type of value. + + + + Returns annotations kind and type associated with this column. + + A dictionary with the kind of the annotation as the key, and the + annotation type as the associated value. + + + + Get or set the column definition by column name. + If there's no such column: + - get returns null, + - set adds a new column. + If there's more than one column with the same name: + - get returns the first column, + - set replaces the first column. + + + + + Create a schema definition by enumerating all public fields of the given type. + + The type to base the schema on. + Accept fields and properties based on their direction. + The generated schema definition. + + + + A cursor that allows slot-by-slot access of data. This is to + what is to . + + + + + Whether the cursor is in a state where it can serve up data, that is, + has been called and returned . + + + + + The slot index. Incremented by one when is called and returns . + When initially created, or after returns , this will be -1. + + + + + Advance to the next slot. When the cursor is first created, this method should be called to + move to the first slot. Returns if there are no more slots. + + + + + The slot type for this cursor. Note that this should equal the + for the column from which this slot cursor + was created. + + + + + A getter delegate for the slot values. The type must correspond + to the item type from . + + + + + For wrapping another slot cursor from which we get and , + but not the data or type accesors. Somewhat analogous to the + for s. + + + + + A useful base class for common implementations, somewhat + analogous to the for s. + + + + + Core implementation of . This is called only if this method + has not yet previously returned . + + + + + A collection of source column indices after removing those we want to drop. Specifically, j=_sources[i] means + that the i-th output column in the output schema is the j-th column in the input schema. + + + + + Input schema of this transform. It's useful when determining column dependencies and other + relations between input and output schemas. + + + + + Some column indexes in the input schema. is computed from + and . + + + + + True, if this transform drops selected columns indexed by . + + + + + Common method of computing from necessary parameters. This function is used in constructors. + + + + + After and are set, pick up selected columns from to create + Note that tells us what columns in are put into . + + + + + Given the column index in the output schema, this function returns its source column's index in the input schema. + + + + + Public constructor corresponding to SignatureDataTransform. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + The anomaly detection evaluator outputs a data view by this name, which contains the the examples + with the top scores in the test set. It contains the three columns listed below, with each row corresponding + to one test example. + + + + + Evaluates scored anomaly detection data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + The evaluation results for these outputs. + + + + This is a base class for TLC evaluators. It implements both of the methods: and + . Note that the input is assumed to contain all the column + roles needed for evaluation, including the score column. + + + + + Compute the AUPRC using the "lower trapesoid" estimator, as described in the paper + https://www.ecmlpkdd2013.org/wp-content/uploads/2013/07/aucpr_2013ecml_corrected.pdf. + + + + + Compute the AUPRC using the "lower trapesoid" estimator, as described in the paper + https://www.ecmlpkdd2013.org/wp-content/uploads/2013/07/aucpr_2013ecml_corrected.pdf. + + + + + Checks the column types of the evaluator's input columns. The base class implementation checks only the type + of the weight column, and all other columns should be checked by the deriving classes in . + + + + + Check that the types of the score and label columns are as expected by the evaluator. The + is assumed to contain the label column (if it exists) and the score column. + Access the label column with the property, and the score column with the + or methods. + + + + + Check the types of any other columns needed by the evaluator. Only override if the evaluator uses + columns other than label, score and weight. + + + + + Used in the Evaluate() method, to get the predicate for cursoring over the data. + The base class implementation activates the score column, the label column if it exists, the weight column if it exists + and the stratification columns. + Override if other input columns need to be activated. + + + + + Get an aggregator for the specific evaluator given the current RoleMappedSchema. + + + + + For each stratification column, get an aggregator dictionary. + + + + + This method returns two functions used to create the data views of metrics computed by the different + aggregators (the overall one, and any stratified ones if they exist). The + function is called for every aggregator, and it is where the aggregators should finish their aggregations + and the aggregator results should be stored. The function + is called after has been called on all the aggregators, and it returns + the dictionary of metric data views. + + + + + This is a helper class for evaluators deriving from EvaluatorBase, used for computing aggregate metrics. + Aggregators should keep track of the number of passes done. The method should get + the input getters of the given that are needed for the current pass, assuming that all the needed column + information is stored in the given . + In the aggregator should call the getters once, and process the input as needed. + increments the pass count after each pass. + + + + + This method should get the getters of the new that are needed for the next pass. + + + + + Call the getters once, and process the input as necessary. + + + + + Increment the pass count. Return true if additional passes are needed. + + + + + Returns a dictionary from metric kinds to data views containing the metrics. + + + + + Gets the stratification column getter for the new . + + + + + This method calls the getter of the stratification column, and returns the aggregator corresponding to + the stratification value. + + + + + + This method returns the aggregators corresponding to all the stratification values seen so far. + + + + + Binary classification evaluator outputs a data view with this name, which contains the p/r data. + It contains the columns listed below, and in case data also contains a weight column, it contains + also columns for the weighted values. + and false positive rate. + + + + + Evaluates scored binary classification data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the probability column in , the calibrated version of . + The name of the predicted label column in . + The evaluation results for these calibrated outputs. + + + + Evaluates scored binary classification data and generates precision recall curve data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the probability column in , the calibrated version of . + The name of the predicted label column in . + The generated precision recall curve data. Up to 100000 of samples are used for p/r curve generation. + The evaluation results for these calibrated outputs. + + + + Evaluates scored binary classification data, without probability-based metrics. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + The evaluation results for these uncalibrated outputs. + + + + + Evaluates scored binary classification data, without probability-based metrics + and generates precision recall curve data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + The generated precision recall curve data. Up to 100000 of samples are used for p/r curve generation. + The evaluation results for these uncalibrated outputs. + + + + + Evaluates scored clustering data. + + The scored data. + The name of the score column in . + The name of the optional label column in . + The name of the optional feature column in . + The evaluation results. + + + + This is a helper class for creating the per-instance IDV. + + + + + Derived class, for example A, should overwrite so that (()A).Save(ctx) can correctly dump A. + + + + + Find the score column to use. If is specified, that is used. Otherwise, this searches + for the most recent score set of the given . If there is no such score set and + is specifed it uses . Otherwise, it throws. + + + + + Find the optional auxiliary score column to use. If is specified, that is used. + Otherwise, if is part of a score set, this looks in the score set for a column + with the given . If none is found, it returns . + + + + + If is non-empty, returns it. Otherwise if is non-, + returns its . Otherwise, returns . + + + + + Helper method to get an IEnumerable of double metrics from an overall metrics IDV produced by an evaluator. + + + + + Add a text column containing a fold index to a data view. + + The host environment. + The data view to which we add the column + The current fold this data view belongs to. + The input data view with an additional text column containing the current fold index. + + + + Add a key type column containing a fold index to a data view. + + The host environment. + The data view to which we add the column + The current fold this data view belongs to. + The total number of folds. + The input data view with an additional key type column containing the current fold index. + + + + This method takes an array of data views and a specified input vector column, and adds a new output column to each of the data views. + First, we find the union set of the slot names in the different data views. Next we define a new vector column for each + data view, indexed by the union of the slot names. For each data view, every slot value is the value in the slot corresponding + to its slot name in the original column. If a reconciled slot name does not exist in an input column, the value in the output + column is def. + + + + + This method takes an array of data views and a specified input key column, and adds a new output column to each of the data views. + First, we find the union set of the key values in the different data views. Next we define a new key column for each + data view, with the union of the key values as the new key values. For each data view, the value in the output column is the value + corresponding to the key value in the original column. + + + + + This method takes an array of data views and a specified input key column, and adds a new output column to each of the data views. + First, we find the union set of the key values in the different data views. Next we define a new key column for each + data view, with the union of the key values as the new key values. For each data view, the value in the output column is the value + corresponding to the key value in the original column. + + + + + This method is similar to , but it reconciles the key values over vector + input columns. + + + + + This method gets the per-instance metrics from multiple scored data views and either returns them as an + array or combines them into a single data view, based on user specifications. + + A host environment. + The evaluator to use for getting the per-instance metrics. + If true, data views are combined into a single data view. Otherwise, data views + are returned as an array. + If true, a column containing the fold index is added to the returned data views. + The array of scored data views to evaluate. These are passed as + so that the evaluator can know the role mappings it needs. + A list of column names that are not included in the combined data view + since their types do not match. + + + + + Create an output data view that is the vertical concatenation of the metric data views. + + + + + Takes a data view containing one or more rows of metrics, and returns a data view containing additional + rows with the average and the standard deviation of the metrics in the input data view. + + + + + Get the confusion tables as strings to be printed to the Console. + + The host is used for getting the random number generator for sampling classes + The data view containing the confusion matrix. It should contain a text column + with the label names named "LabelNames", and an R8 vector column named "Count" containing the counts: in the row + corresponding to label i, slot j should contain the number of class i examples that were predicted as j by the predictor. + If there is an R8 vector column named "Weight" containing the weighted counts, this parameter + is assigned the string representation of the weighted confusion table. Otherwise it is assigned null. + Indicates whether the confusion table is for binary classification. + Indicates how many classes to sample from the confusion table (-1 indicates no sampling) + + + + This method returns the per-fold metrics as a string. If weighted metrics are present they are returned in a separate string. + + An IHostEnvironment. + The data view containing the per-fold metrics. Each row in the data view represents a set of metrics + calculated either on the whole dataset or on a subset of it defined by a stratification column. If the data view contains + stratified metrics, it must contain two text columns named "StratCol" and "StratVal", containing the stratification column + name, and a text description of the value. In this case, the value of column StratVal in the row corresponding to the entire + dataset should contain the text "overall", and the value of column StratCol should be DvText.NA. If weighted metrics are present + then the data view should also contain a bool column named "IsWeighted". + If the IsWeighted column exists, this is assigned the string representation of the weighted + metrics. Otherwise it is assigned null. + + + + Print the overall results to the Console. The overall data view should contain rows from all the folds being averaged. + If filename is not null then also save the results to the specified file. The first row in the file is the averaged + results, followed by the results of each fold. + + + + + Searches for a warning dataview in the given dictionary, and if present, prints the warnings to the given channel. The warning dataview + should contain a text column named "WarningText". + + + + + Save the given data view using text saver. + + + + + Filter out the stratified results from overall and drop the stratification columns. + + + + + This is a list of string constants denoting 'standard' metric kinds. + + + + + This data view contains the confusion matrix for N-class classification. It has N rows, and each row has + the following columns: + * Count (vector indicating how many examples of this class were predicted as each one of the classes). This column + should have metadata containing the class names. + * (Optional) Weight (vector with the total weight of the examples of this class that were predicted as each one of the classes). + + + + + This is a data view with 'global' dataset-wise metrics in its columns. It has one row containing the overall metrics, + and optionally more rows for weighted metrics, and stratified metrics. + + + + + This is a data view with precision recall data in its columns. It has four columns: Threshold, Precision, Recall and Fpr. + + + + + This data view contains a single text column, with warnings about bad input values encountered by the evaluator during + the aggregation of metrics. Each warning is in a separate row. + + + + + Names for the columns in the data views output by evaluators. + + + + + This interface is used by Maml components (the , the + and the to evaluate, print and save the results. + The input to the and the methods + should be assumed to contain only the following column roles: label, group, weight and name. Any other columns needed for + evaluation should be searched for by name in the . + + + + + Print the aggregate metrics to the console. + + + + + Combine the overall metrics from multiple folds into a single data view. + + + + + + + Handles custom metrics (such as p/r curves for binary classification, or group summary results for ranking) from one + or more folds. Implementations of this method typically creates a single data view for the custom metric and saves it + to a user specified file. + + + + + Create a data view containing only the columns that are saved as per-instance results by Maml commands. + + + + + A base class implementation of . The and + methods create a new containing all the columns needed for evaluation, and call the corresponding + methods on an of the appropriate type. + + + + + All the input columns needed by an evaluator should be added here. + The base class implementation gets the score column, the label column (if exists) and the weight column (if exists). + Override if additional columns are needed. + + + + + This method simply prints the overall metrics using EvaluateUtils.PrintConfusionMatrixAndPerFoldResults. + Override if something else is needed. + + + + + This method simply prints the overall metrics using EvaluateUtils.PrintOverallMetrics. + Override if something else is needed. + + + + + The perInst dataview contains all a name column (called Instance), the FoldId, Label and Weight columns if + they exist, and all the columns returned by . + It should be overridden only if additional processing is needed, such as dropping slots in the "top k scores" column + in the multi-class case. + + + + + Returns the names of the columns that should be saved in the per-instance results file. These can include + the columns generated by the corresponding , or any of the input columns used by + it. The Name and Weight columns should not be included, since the base class includes them automatically. + + + + + Evaluation results for anomaly detection(unsupervised learning algorithm). + + + + + Gets the area under the ROC curve. + + + The area under the ROC curve is equal to the probability that the algorithm ranks + a randomly chosen positive instance higher than a randomly chosen negative one + (assuming 'positive' ranks higher than 'negative'). Area under the ROC curve ranges between + 0 and 1, with a value closer to 1 indicating a better model. + + + + + Detection rate at K false positives. This gives the ratio of correctly identified anomalies given + the specified number of false positives. A value closer to 1 indicates a better model. + + + This is computed as follows: + 1.Sort the test examples by the output of the anomaly detector in descending order of scores. + 2.Among the top K False Positives, compute ratio : (True Positive @ K) / (Total anomalies in test data) + Example confusion matrix for anomaly detection: + Anomalies (in test data) | Non-Anomalies (in test data) + Predicted Anomalies : TP | FP + Predicted Non-Anomalies : FN | TN + + + + + Evaluation results for binary classifiers, excluding probabilistic metrics. + + + + + Gets the area under the ROC curve. + + + The area under the ROC curve is equal to the probability that the classifier ranks + a randomly chosen positive instance higher than a randomly chosen negative one + (assuming 'positive' ranks higher than 'negative'). Area under the ROC curve ranges between + 0 and 1, with a value closer to 1 indicating a better model. + + Area Under ROC Curve + + + + + Gets the accuracy of a classifier which is the proportion of correct predictions in the test set. + + + + + Gets the positive precision of a classifier which is the proportion of correctly predicted + positive instances among all the positive predictions (i.e., the number of positive instances + predicted as positive, divided by the total number of instances predicted as positive). + + + + + Gets the positive recall of a classifier which is the proportion of correctly predicted + positive instances among all the positive instances (i.e., the number of positive instances + predicted as positive, divided by the total number of positive instances). + + + + + Gets the negative precision of a classifier which is the proportion of correctly predicted + negative instances among all the negative predictions (i.e., the number of negative instances + predicted as negative, divided by the total number of instances predicted as negative). + + + + + Gets the negative recall of a classifier which is the proportion of correctly predicted + negative instances among all the negative instances (i.e., the number of negative instances + predicted as negative, divided by the total number of negative instances). + + + + + Gets the F1 score of the classifier, which is a measure of the classifier's quality considering + both precision and recall. + + + F1 score is the harmonic mean of precision and recall: 2 * precision * recall / (precision + recall). + F1 ranges between 0 and 1, with a value of 1 indicating perfect precision and recall. + + + + + Gets the area under the precision/recall curve of the classifier. + + + The area under the precision/recall curve is a single number summary of the information in the + precision/recall curve. It is increasingly used in the machine learning community, particularly + for imbalanced datasets where one class is observed more frequently than the other. On these + datasets, can highlight performance differences that + are lost with . + + + + + The confusion matrix giving the counts of the + true positives, true negatives, false positives and false negatives for the two classes of data. + + + + + This class represents one data point on Precision-Recall curve for binary classification. + + + + + Gets the threshold for this data point. + + + + + Gets the precision for the current threshold. + + + + + Gets the recall for the current threshold. + + + + + Gets the true positive rate for the current threshold. + + + + + Gets the false positive rate for the given threshold. + + + + + Evaluation results for binary classifiers, including probabilistic metrics. + + + + + Gets the log-loss of the classifier. Log-loss measures the performance of a classifier + with respect to how much the predicted probabilities diverge from the true class label. Lower + log-loss indicates a better model. A perfect model, which predicts a probability of 1 for the + true class, will have a log-loss of 0. + + + + + + + + + Gets the log-loss reduction (also known as relative log-loss, or reduction in information gain - RIG) + of the classifier. It gives a measure of how much a model improves on a model that gives random predictions. + Log-loss reduction closer to 1 indicates a better model. + + + + + + + + + Gets the test-set entropy, which is the prior log-loss based on the proportion of positive + and negative instances in the test set. A classifier's lower than + the entropy indicates that a classifier does better than predicting the proportion of positive + instances as the probability for each instance. + + + + + + + + + The metrics generated after evaluating the clustering predictions. + + + + + Normalized Mutual Information is a measure of the mutual dependence of the variables. + This metric is only calculated if the Label column is provided. + + Its value ranges from 0 to 1, where higher numbers are better. + Normalized variants. + + + + Average Score. For the K-Means algorithm, the 'score' is the distance from the centroid to the example. + The average score is, therefore, a measure of proximity of the examples to cluster centroids. + In other words, it is a measure of 'cluster tightness'. + Note however, that this metric will only decrease if the number of clusters is increased, + and in the extreme case (where each distinct example is its own cluster) it will be equal to zero. + + Distance is to the nearest centroid. + + + + Davies-Bouldin Index is measure of the how much scatter is in the cluster and the cluster separation. + + Davies-Bouldin Index. + + + + Represents the confusion matrix of the classification results. + + + + + The calculated value of precision for each class. + + + + + The calculated value of recall for each class. + + + + + The confusion matrix counts for the combinations actual class/predicted class. + The actual classes are in the rows of the table (stored in the outer ), and the predicted classes + in the columns(stored in the inner ). + + + + + The indicators of the predicted classes. + It might be the classes names, or just indices of the predicted classes, if the name mapping is missing. + + + + + The indicators of the predicted classes. + It might be the classes names, or just indices of the predicted classes, if the name mapping is missing. + + + + + The confusion matrix as a structured type, built from the counts of the confusion table that the or + the constructor. + + The IHost instance. + The values of precision per class. + The vales of recall per class. + The counts of the confusion table. The actual classes values are in the rows of the 2D array, + and the counts of the predicted classes are in the columns. + The predicted classes names, or the indexes of the classes, if the names are missing. + Whether the classes are sampled. + Whether the confusion table is the result of a binary classification. + + + + Returns a human readable representation of the confusion table. + + + + + + Gets the confusion table count for the pair /. + + The index of the predicted label indicator, in the . + The index of the actual label indicator, in the . + + + + + Evaluation results for multi-class classification trainers. + + + + + Gets the average log-loss of the classifier. Log-loss measures the performance of a classifier + with respect to how much the predicted probabilities diverge from the true class label. Lower + log-loss indicates a better model. A perfect model, which predicts a probability of 1 for the + true class, will have a log-loss of 0. + + + + + + + + + Gets the log-loss reduction (also known as relative log-loss, or reduction in information gain - RIG) + of the classifier. It gives a measure of how much a model improves on a model that gives random predictions. + Log-loss reduction closer to 1 indicates a better model. + + + + + + + + + Gets the macro-average accuracy of the model. + + + The macro-average is the average accuracy at the class level. The accuracy for each class is computed + and the macro-accuracy is the average of these accuracies. + + The macro-average metric gives the same weight to each class, no matter how many instances from + that class the dataset contains. + + + + + Gets the micro-average accuracy of the model. + + + The micro-average is the fraction of instances predicted correctly across all classes. Micro-average can + be a more useful metric than macro-average if class imbalance is suspected (i.e. one class has many more + instances than the rest). + + + + + Convenience method for "TopKAccuracyForAllK[TopKPredictionCount - 1]". If is positive, + this is the relative number of examples where + the true label is one of the top K predicted labels by the predictor. + + + + + If positive, this indicates the K in and . + + + + + Returns the top K accuracy for all K from 1 to the value of TopKPredictionCount. + + + + + Gets the log-loss of the classifier for each class. Log-loss measures the performance of a classifier + with respect to how much the predicted probabilities diverge from the true class label. Lower + log-loss indicates a better model. A perfect model, which predicts a probability of 1 for the + true class, will have a log-loss of 0. + + + The log-loss metric is computed as $-\frac{1}{m} \sum_{i=1}^m \log(p_i)$, + where $m$ is the number of instances in the test set. + $p_i$ is the probability returned by the classifier if the instance belongs to the class, + and 1 minus the probability returned by the classifier if the instance does not belong to the class. + + + + + + + + + The confusion matrix giving the counts of the + predicted classes versus the actual classes. + + + + + Evaluation results for rankers. + + + + + + + + + Normalized Discounted Cumulative Gain + + + + + + + + + Discounted Cumulative Gain + + + + + Evaluation results regression algorithms (supervised learning algorithm). + + + + + Gets the absolute loss of the model. + + + + + + + + + Gets the squared loss of the model. + + + + + + + + + Gets the root mean square loss (or RMS) which is the square root of the L2 loss . + + + + + Gets the result of user defined loss function. + + + This is the average of a loss function defined by the user, + computed over all the instances in the test set. + + + + + Gets the R-squared value of the model, which is also known as + the coefficient of determination​. + R-Squared closer to 1 indicates a better fitted model. + + + + + Evaluates scored multiclass classification data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + The evaluation results for these outputs. + + + + Options to control the output of the RankingEvaluator + + + + + Maximum truncation level for computing (N)DCG + + + + + Label relevance gains + + + + + The ranking evaluator outputs a data view by this name, which contains metrics aggregated per group. + It contains four columns: GroupId, NDCG, DCG and MaxDCG. Each row in the data view corresponds to one + group in the scored data. + + + + + Evaluates scored regression data. + + The data to evaluate. + The name of the label column. + The name of the groupId column. + The name of the predicted score column. + The evaluation metrics for these outputs. + + + + Explicit implementation prevents Schema from being accessed from derived classes. + It's our first step to separate data produced by transform from transform. + + + + + Shape information of the produced output. Note that the input and the output of this transform (and their types) are identical. + + + + + Calculates natural-based max DCG at all truncations from 1 to truncationLevel. + + + + + Evaluates scored regression data. + + The data to evaluate. + The name of the label column. + The name of the predicted score column. + The evaluation metrics for these outputs. + + + + An interface that combines multiple predictors into a single predictor. + + + + + This function performs a number of checks on the inputs and, if appropriate and possible, will produce + a mapper with slots names on the output score column properly mapped. If this is not possible for any + reason, it will just return the input bound mapper. + + + + + This is a utility method used to determine whether + can or should be used to wrap . This will not throw, since the + desired behavior in the event that it cannot be wrapped, is to just back off to the original + "unwrapped" bound mapper. + + The mapper we are seeing if we can wrap + The type of the label names from the metadata (either + originating from the key value metadata of the training label column, or deserialized + from the model of a bindable mapper) + Whether we can call with + this mapper and expect it to succeed + + + + Used only by the command line API for scoring and calculation of feature contribution. + + + + + Holds the definition of the getters for the FeatureContribution column. It also contains the generic mapper that is used to score the Predictor. + This is only used by the command line API. + + + + + Maps a schema from input columns to output columns. Keeps track of the input columns that are needed for the mapping. + + + + + Returns the input columns needed for the requested output columns. + + + + + This class is a scorer that passes through all the ISchemaBound columns without adding any "derived columns". + It also passes through all metadata (except for possibly changing the score column kind), and adds the + score set id metadata. + + + + + The one and only constructor for Bindings. + + + + + Create the bindings given the input schema, bound mapper, and column name suffix. + + + + + Create the bindings given the env, bindable, input schema, column roles, and column name suffix. + + + + + Create a new Bindings from this one, but based on a potentially different schema. + Used by the ITransformTemplate.ApplyToData implementation. + + + + + Deserialize the bindings, given the env, bindable and input schema. + + + + + The entry point for creating a . + + + + + Constructor for method. + + + + + Constructor for deserialization. + + + + + entry point - for deserialization. + + + + + This bindable mapper facilitates the serialization and rebinding of the special bound + mapper that attaches the label metadata to the slot names of the output score column. + + + + + Method corresponding to . + + + + The mapper we are wrapping. + + + + This is the constructor called for the initial wrapping. + + + + + Append label names to score column as its metadata. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This function performs a number of checks on the inputs and, if appropriate and possible, will produce + a mapper with slots names on the output score column properly mapped. If this is not possible for any + reason, it will just return the input bound mapper. + + + + + This is a utility method used to determine whether + can or should be used to wrap . This will not throw, since the + desired behavior in the event that it cannot be wrapped, is to just back off to the original + "unwrapped" bound mapper. + + The mapper we are seeing if we can wrap + The type of the label names from the metadata (either + originating from the key value metadata of the training label column, or deserialized + from the model of a bindable mapper) + Whether we can call with + this mapper and expect it to succeed + + + + This is a utility method used to determine whether + can or should be used to wrap . This will not throw, since the + desired behavior in the event that it cannot be wrapped, is to just back off to the original + "unwrapped" bound mapper. + + The mapper we are seeing if we can wrap + The type of the label names from the metadata (either + originating from the key value metadata of the training label column, or deserialized + from the model of a bindable mapper) + Whether we can call with + this mapper and expect it to succeed + + + + Corresponds to . + + + + + Class for scorers that compute on additional "PredictedLabel" column from the score column. + Currently, this scorer is used for binary classification, multi-class classification, and clustering. + + + + + Base class for transformers with no feature column, or more than one feature columns. + + The type of the model parameters used by this prediction transformer. + + + + The model. + + + + + Whether a call to should succeed, on an + appropriate schema. + + + + + This class is more or less a thin wrapper over the implementing + , which publicly is a deprecated concept as far as the public API is + concerned. Nonetheless, until we move all internal infrastructure to be truely transform based, we + retain this as a wrapper. Even though it is mutable, subclasses of this should set this only in + their constructor. + + + + + Gets the output schema resulting from the + + The of the input data. + The resulting . + + + + Transforms the input data. + + The input data. + The transformed + + + + Gets a IRowToRowMapper instance. + + + + + + + The base class for all the transformers implementing the . + Those are all the transformers that work with one feature column. + + The model used to transform the data. + + + + The name of the feature column used by the prediction transformer. + + + + + The type of the prediction transformer + + + + + Initializes a new reference of . + + The local instance of . + The model used for scoring. + The schema of the training data. + The feature column name. + + + + Schema propagation for this prediction transformer. + + The input schema to attempt to map. + The output schema of the data, given an input schema like . + + + + Base class for the working on anomaly detection tasks. + + An implementation of the + + + + Base class for the working on binary classification tasks. + + An implementation of the + + + + Base class for the working on multi-class classification tasks. + + An implementation of the + + + + Base class for the working on regression tasks. + + An implementation of the + + + + Base class for the working on ranking tasks. + + An implementation of the + + + + Base class for the working on clustering tasks. + + An implementation of the + + + + Constructor corresponding to . + + + + + Constructor corresponding to . + + + + + Base class for scoring rows independently. This assumes that all columns produced by the + underlying should be exposed, as well as zero or more + "derived" columns. + + + + + The main save method handles saving the _bindable. This should do everything else. + + + + + Derived classes provide the specific bindings object. + + + + + Produces the set of active columns for the scorer (as a bool[] of length bindings.ColumnCount). + + + + + This produces either "true" or "null" according to whether + returns true or false. Note that this will never return false. Any derived class + must support (but not necessarily prefer) parallel cursors. + + + + + This should return true iff parallel cursors are advantageous. Typically, this + will return true iff some columns added by this scorer are active. + + + + + Create and fill an array of getters of size InfoCount. The indices of the non-null entries in the + result should be exactly those for which predicate(iinfo) is true. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Base bindings for a scorer based on an . This assumes that input schema columns + are echoed, followed by zero or more derived columns, followed by the mapper generated columns. + The names of the derived columns and mapper generated columns have an optional suffix appended. + + + + + The schema bound mapper. + + + + + The column name suffix. Non-null, but may be empty. + + + + + The number of derived columns. InfoCount == DerivedColumnCount + Mapper.OutputSchema.ColumnCount. + + + + + Returns a predicate indicating which Mapper columns are active based on the active scorer columns. + This is virtual so scorers with computed columns can do the right thing. + + + + + This is a base class for wrapping s in an . + + + + + The implementation for predictor wrappers that produce a + single output column. Note that the Bindable wrapper should do any input schema validation. + This class doesn't care. It DOES care that the role mapped schema specifies a unique Feature column. + It also requires that the output schema has ColumnCount == 1. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + This class is a wrapper for all s except for quantile regression predictors, + and calibrated binary classification predictors. + + + + + This is an wrapper for calibrated binary classification predictors. + They need a separate wrapper because they return two values instead of one: the raw score and the probability. + + + + + The implementation for distribution predictor wrappers that produce + two float-valued output columns. Note that the Bindable wrapper does input schema validation. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + This is an wrapper for quantile regression predictors. They need a separate + wrapper because they need the quantiles to create the . + + + + + This class contains method for creating commonly used s. + + + + + Return a which contains a single score column. + + The type of the score column. + The kind of the score column. It's the value of in the score column's metadata. + The score column's name in the generated . + which contains only one column. + + + + Create a with two columns for binary classifier. The first column, indexed by 0, is the score column. + The second column is the probability column. For example, for linear support vector machine, score column stands for the inner product + of linear coefficients and the input feature vector and we convert score column to probability column using a calibrator. + + Column name of score column + Column name of probability column + of binary classifier's output. + + + + This is very similar to but adds one extra metadata field to the only score column. + + Output element's type of quantile regressor. Note that a quantile regressor can produce an array of . + Quantiles used in quantile regressor. + of quantile regressor's output. + + + + This function returns a schema for sequence predictor's output. Its output column is always called . + + Score column's type produced by sequence predictor. + A metadata value of score column. It's the value associated with key + . + Sequence predictor usually generates integer outputs. This field tells the tags of all possible output values. + For example, output integer 0 could be mapped to "Sell" and 0 to "Buy" when predicting stock trend. + of sequence predictor's output. + + + + A class for mapping an input to an output cursor assuming no output columns + are requested, given a bindings object. This can be useful for transforms + utilizing the , but for which it is + inconvenient or inefficient to handle the "no output selected" case in their + own implementation. + + + + + Creates a wrapped version of the cursor + + Channel provider + The input cursor + The bindings object, + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Convenience method to more easily extract an from an + implementor without requiring an explicit cast. + + + + + An internal interface for the benefit of those -bearing objects accessible through + . Because this is meant to consumed by component authors implementations of this interface + should be explicit. + + + + + For parsing from a string. This supports "name" and "name:source". + Derived classes that want to provide parsing functionality to the CmdParser need to implement + a static Parse method. That method can call this (directly or indirectly) to handle the supported + syntax. + + + + + For parsing from a string. This supports "name" and "name:source" and "name:extra:source". For the last + form, the out extra parameter is sort accordingly. For the other forms, extra is set to null. + Derived classes that want to provide parsing functionality to the CmdParser need to implement + a static Parse method. That method can call this (directly or indirectly) to handle the supported + syntax. + + + + + The core unparsing functionality, for generating succinct command line forms "name" and "name:source". + + + + + The core unparsing functionality, for generating the succinct command line form "name:extra:source". + + + + + If both of name and source are null or white-space, return false. + Otherwise, if one is null or white-space, assign that one the other's value. + + + + + The parsing functionality for custom parsing from a string. This supports "name" and "name:sources", + where sources is a comma separated list of source column names. + + + + + Parsing functionality for custom parsing from a string with an "extra" value between name and sources. + This supports "name", "name:sources" and "name:extra:sources". + + + + + Base class that abstracts passing input columns through (with possibly different indices) and adding + InfoCount additional columns. If an added column has the same name as a non-hidden input column, it hides + the input column, and is placed immediately after the input column. Otherwise, the added column is placed + at the end. By default, newly added columns have no annotations (but this can be overridden). + + + + + Constructor taking the input schema and new column names. Names must be non-empty and + each name must be non-white-space. The names must be unique but can match existing names + in schemaInput. For error reporting, this assumes that the names come from a user-supplied + parameter named "column". This takes ownership of the params array of names. + + + + + The number of added columns. + + + + + This maps a column index for this schema to either a source column index (when + is true), or to an "iinfo" index of an added column + (when is false). + + Whether the return index is for a source column + The column index for this schema + The index (either source index or iinfo index) + + + + This maps from an index to an added column "info" to a column index. + + + + + The given predicate maps from output column index to whether the column is active. + This builds an array of bools of length ColumnCount containing the results of calling + predicate on each column index. + + + + + This builds an array of bools of length ColumnCount indicating the index of the active column. + + + + + The given predicate maps from output column index to whether the column is active. + This builds an array of bools of length Input.ColumnCount containing the results of calling + predicate on the output column index corresponding to each input column index. + + + + + This builds an array of bools of length Input.ColumnCount containing indicating the index of the + active input columns, given the actual columns. + + + + + Determine whether any columns generated by this transform are active. + + + + + Class that encapsulates passing input columns through (with possibly different indices) and adding + additional columns. If an added column has the same name as a non-hidden input column, it hides + the input column, and is placed immediately after the input column. Otherwise, the added column is placed + at the end. + This class is intended to simplify predicate propagation for this case. + + + + + The indices of added columns in the . + + + + + The input schema. + + + + + The merged schema. + + + + + Create a new instance of . + + The input schema that we're adding columns to. + The columns being added. + + + + This maps a column index for this schema to either a source column index (when + is true), or to an "iinfo" index of an added column + (when is false). + + Whether the return index is for a source column + The column index for this schema + The index (either source index or iinfo index) + + + + The given predicate maps from output column index to whether the column is active. + This builds an array of bools of length Input.ColumnCount containing the results of calling + predicate on the output column index corresponding to each input column index. + + + + + Parsing utilities for converting between transform column argument objects and + command line representations. + + + + + For parsing name and source from a string. This supports "name" and "name:source". + + + + + For parsing name and source from a string. This supports "name" and "name:source" and "name:extra:source". + For the last form, the out extra parameter is set accordingly. For the other forms, extra is set to null. + + + + + resulting from fitting an . + + + + + This denotes a concatenation of all into column called . + + + + + This denotes a concatenation of input columns into one column called . + For each input column, an 'alias' can be specified, to be used in constructing the resulting slot names. + If the alias is not specified, it defaults to be column name. + + + + + The names of the output and input column pairs for the transformation. + + + + + Concatename columns in into one column . + Original columns are also preserved. + The column types must match, and the output column type is always a vector. + + + + + Concatenates multiple groups of columns, each group is denoted by one of . + + + + + Factory method for SignatureLoadModel. + + + + + Factory method for SignatureDataTransform. + + + + + Factory method corresponding to SignatureDataTransform. + + + + + Factory method for SignatureLoadDataTransform. + + + + + Factory method for SignatureLoadRowMapper. + + + + + This represents the column information bound to the schema. + + + + + Clears a destination StringBuilder. If it is currently null, allocates it. + + + + + Gets the mapping from T into a StringBuilder representation, using various heuristics. + This StringBuilder representation will be a component of the composed KeyValues for the + hash outputs. + + + + + This is a small struct that is meant to compare akin to the value, + but also maintain the order in which it was inserted, assuming that + we're using something like a hashset where order is not preserved. + + + + + Constructs an invert hash collector that collects unique keys per slot, then is able + to build a textual description out of that. + + The maximum number of slots + The number of distinct keys we can accumulate per slot + Utilized in composing the final description, once we have done + collecting the distinct keys. + For detecting uniqueness of the keys we're collecting per slot. + For copying input values into a value to actually store. Useful for + types of objects where it is possible to do a comparison relatively quickly on some sort + of "unsafe" object, but for which when we decide to actually store it we need to provide + a "safe" version of the object. Utilized in the n-gram hash transform, for example. + + + + Simple utility class for saving a of ReadOnlyMemory + as a model, both in a binary and more easily human readable form. + + + + + Base class for handling the schema metadata API. + + + + + Information for a column. + + + + + Base class for metadata getters. + + + + + Strongly typed base class for metadata getters. Introduces the abstract Get method. + + + + + A delegate based metadata getter. + + + + + A primitive value based metadata getter. + + + + + The number of columns. + + + + + Create a ColInfo with the indicated information and no GetterInfos. This doesn't + register a column, only creates a ColInfo. Note that multiple columns can share + the same ColInfo, if desired. Simply call RegisterColumn multiple times, passing + the same ColInfo but different index values. This can only be called before Seal is called. + + + + + Register the given ColInfo as the metadata handling information for the given + column index. Throws if the given column index already has a ColInfo registered for it. + This can only be called before Seal is called. + + + + + Seals this dispatcher from further column registrations. This must be called before any + metadata methods are called, otherwise an exception is thrown. + + + + + Returns the ColInfo registered for the given column index, if there is one. This may be called + before or after Seal is called. + + + + + Gets the metadata kinds and types for the given column index. + This can only be called after Seal is called. + + + + + Gets the metadata type for the given metadata kind and column index, if there is one. + This can only be called after Seal is called. + + + + + Gets the metadata for the given metadata kind and column index. Throws if there isn't any. + This can only be called after Seal is called. + + + + + For handling the schema metadata API. Call one of the BuildMetadata methods to get + a builder for a particular column. Wrap the return in a using statement. Disposing the builder + records the metadata for the column. Call Seal() once all metadata is constructed. + + + + + Start building metadata for a column that doesn't pass through any metadata from + a source column. + + + + + Start building metadata for a column that passes through all metadata from + a source column. + + + + + Start building metadata for a column that passes through metadata of certain kinds from + a source column. The kinds that are passed through are those for which + returns true. + + + + + Start building metadata for a column that passes through metadata of the given kind from + a source column. + + + + + Start building metadata for a column that passes through metadata of the given kinds from + a source column. + + + + + The builder for metadata for a particular column. + + + + + This should really be private to MetadataDispatcher, but C#'s accessibility model doesn't + allow restricting to an outer class. + + + + + Add metadata of the given kind. When requested, the metadata is fetched by calling the given delegate. + + + + + Add metadata of the given kind, with the given value. + + + + + Close out the builder. This registers the metadata with the dispatcher. + + + + + A transform that does nothing. + + + + + Creates a NopTransform if the input is not an IDataTransform. + Otherwise it returns the input. + + + + + Explicit implementation prevents Schema from being accessed from derived classes. + It's our first step to separate data produced by transform from transform. + + + + + Shape information of the produced output. Note that the input and the output of this transform (and their types) are identical. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Signature for a repository based loader of an . + + + + + Trains on the current value. + + True if it can use more values for training. + + + + Finishes training and returns a column function. + + + + + Interface to define an aggregate function over values + + + + + Updates the aggregate function with a value + + + + + Finishes the aggregation + + + + + This contains entry-point definitions related to . + + + + + Base class for transformer which operates on pairs input and output columns. + + + + + This is a base implementation for a transform that in order to compute its output columns, needs to look + at an entire group of consecutive input examples. For each example in the group, it looks at the value of + two input columns and after seeing the entire group it computes the output column values. The output values + are the same for every example in the same group. + + The type of the values in the first input column + The type of the values in the second input column + Each class deriving from this transform should implement a state class that knows + how to return the current group's output column values. + + + + Deriving classes only need to implement . + If any of the output columns have metadata, then the metadata methods should be overridden. + + + + + Creates the getters for the transform's output columns. It can be assumed that when the getters are called, the state + object contains the current values of the output columns. + + The state object, containing the current group's output values. + Which output columns are active. + + + + Get the getter for the first input column. + + + + + Get the getter for the second input column. + + + + + Return a new state object. + + + + + Update the state object with one example. + + + + + This method is called after processing a whole group of examples. In this method the + state object should compute the output values for the group just seen. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Base class for transformer which produce new columns, but doesn't affect existing ones. + + + + + Base class for transforms. + + + + + The field is the type information of the produced IDataView of this transformer. + + Explicit interface implementation hides in all derived classes. The reason + is that a transformer should know the type it will produce but shouldn't contain the type of the data it produces. + Thus, this field will be eventually removed while legacy code can still access for now. + + + + + This returns false when this transform cannot support parallel cursors, null when it + doesn't care, and true when it benefits from parallel cursors. For example, a transform + that simply affects metadata, but not column values should return null, while a transform + that does a bunch of computation should return true (if legal). + + + + + Create a single (non-parallel) row cursor. + + + + + Base class for transforms that map single input row to single output row. + + + + + Base class for transforms that filter out rows without changing the schema. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Base class for transforms that operate row by row with each destination column using one + source column. It provides an extension mechanism to allow a destination column to depend + on multiple input columns. + The implementation of TransformBase's OutputSchema and GetRowCursorCore are found here. + Because of this, classes deriving from OneToOneTransformerBase do not need to worry about creating + a or a , + since has an AsSchema property which returns the schema, and the nested class + is used by all classes deriving from OneToOneTransformBase when getting the row cursor. + + + + + Information about an added column - the name of the new column, the index of the + source column and the type of the source column. + + + + + Information about each added column. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Re-applying constructor. + + + + + Called by . Should be implemented by subclasses that return + true from . Will be called + + The context. Can be used to declare cells, access other information, + and whatnot. This method should not actually, however, declare the variable corresponding + to the output column. The calling method will do that. + The index of the output column whose PFA is being composed + The column info + The token in the PFA corresponding to the source col + Shuold return the declaration corresponding to the value of this column. Will + return null in the event that we do not know how to express this column as PFA + + + + Return the (destination) column index for the indicated added column. + + + + + Activates the source column. + Override when you don't need the source column to generate the value for this column or when you need + other auxiliary source columns that iinfo destination column depends on. + + + + + Sub-classes implement this to provide, for a cursor, a getter delegate and optional disposer. + If no action is needed when the cursor is Disposed, the override should set disposer to null, + otherwise it should be set to a delegate to be invoked by the cursor's Dispose method. It's best + for this action to be idempotent - calling it multiple times should be equivalent to calling it once. + + + + + This produces either "true" or "null" according to whether + returns true or false. Note that this will never return false. Any derived class + must support (but not necessarily prefer) parallel cursors. + + + + + This should return true iff parallel cursors are advantageous. The default implementation + returns true iff some columns added by this transform are active. + + + + + Returns a standard exception for responding to an invalid call to + implementation in on a column that is not transposable. + + + + + Implementors should note this only called if + returns a non-null value for this , so in principle + it should always return a valid value, if called. This implementation throws, + since the default implementation of will return + null for all new columns, and so reaching this is only possible if there is a + bug. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Utilities to rebind data transforms + + + + + Attempt to apply the data transform to a different data view source. + If the transform in question implements , + is called. Otherwise, the transform is serialized into a byte array and then deserialized. + + The host to use + The transform to apply. + The data view to apply the transform to. + The resulting data view. + + + + Walks back the Source chain of the up to the + (or if is null), + and reapplies all transforms in the chain, to produce the same chain but bound to the different data. + It is valid to have no transforms: in this case the result will be equal to + If is specified and not found in the pipe, an exception is thrown. + + The environment to use. + The end of the chain. + The new data to attach the chain to. + The 'old source' of the pipe, that doesn't need to be reapplied. If null, all transforms are reapplied. + The resulting data view. + + + + Extension methods that allow to extract values of a single column of an as an + . + + + + + Extract all values of one column of the data view in a form of an . + + The type of the values. This must match the actual column type. + The data view to get the column from. + The name of the column to be extracted. + + + + Extract all values of one column of the data view in a form of an . + + The type of the values. This must match the actual column type. + The data view to get the column from. + The column to be extracted. + + + + This class defines extension methods for an to facilitate creating + components (loaders, transforms, trainers, scorers, evaluators, savers). + + + + + Create a new data view which is obtained by appending all columns of all the source data views. + If the data views are of different length, the resulting data view will have the length equal to the + length of the shortest source. + + The host environment to use. + A non-empty collection of data views to zip together. + The resulting data view. + + + + Generate training examples for training a predictor or instantiating a scorer. + + The host environment to use. + The data to use for training or scoring. + The name of the features column. Can be null. + The name of the label column. Can be null. + The name of the group ID column (for ranking). Can be null. + The name of the weight column. Can be null. + Additional column mapping to be passed to the trainer or scorer (specific to the prediction type). Can be null or empty. + The constructed examples. + + + + Load the transforms (but not loader) from the model steram and apply them to the specified data. + It is acceptable to have no transforms in the model stream: in this case the original + will be returned. + + The host environment to use. + The model stream to load from. + The data to apply transforms to. + The transformed data. + + + + Creates a data loader from the arguments object. + + + + + Creates a data loader from the 'LoadName{settings}' string. + + + + + Creates a data saver from the arguments object. + + + + + Creates a data saver from the 'LoadName{settings}' string. + + + + + Creates a data transform from the arguments object. + + + + + Creates a data transform from the 'LoadName{settings}' string. + + + + + Creates a data scorer from the 'LoadName{settings}' string. + + The host environment to use. + The settings string. + The data to score. + The predictor to score. + The training data schema from which the scorer can optionally extract + additional information, for example, label names. If this is null, no information will be + extracted. + The scored data. + + + + Creates a default data scorer appropriate to the predictor's prediction kind. + + The host environment to use. + The data to score. + The predictor to score. + The training data schema from which the scorer can optionally extract + additional information, for example, label names. If this is null, no information will be + extracted. + The scored data. + + + + Loads a predictor from the model stream. Returns null iff there's no predictor. + + The host environment to use. + The model stream. + + + + An ML.NET environment for local execution. + + + + + Create an ML.NET for local execution. + + Random seed. Set to null for a non-deterministic environment. + + + + Add a custom listener to the messages of ML.NET components. + + + + + Remove a previously added a custom listener. + + + + + Utilities to parse command-line representations of types. + + + + + Attempt to parse the string into a data kind and (optionally) a keyCount. This method does not check whether + the returned can really be made into a key with the specified . + + The string to parse. + The parsed data kind. + The parsed key count, or null if there's no key specification. + Whether the parsing succeeded or not. + + + + Construct a out of the data kind and the keyCount. + + + + + Defines the cardinality, or count, of valid values of a column. This needs to be strictly positive. + It is used by and . + + + + + Initializes the cardinality, or count, of valid values of a column to the + largest integer that can be expresed by the underlying datatype of the . + + + + + Initializes the cardinality, or count, of valid values of a column to + + + + + Parses the string format for a KeyCount, also supports the old KeyRange format for backwards compatibility. + + + + + Create a file handle from path if it was not empty. + + + + + Create the write stream from the file, if not null. + + + + + Collection of extension methods for the to create instances of + components to save and read objects to and from a high-performance binary format. + + + + + Load a from an on a binary file. + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The catalog. + The file source to load from. This can be a , for example. + + + + Load a from a binary file. + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The catalog. + The path to the file to load from. + + + + + + + + + Save the into a binary stream. + + The catalog. + The data view to save. + The stream to write to. + Whether to keep hidden columns in the dataset. + + + + + + + + + Represents some common global operations over a type + including many unsafe operations. + + + + + + This does NOT take ownership of the names array. + + + + + This takes ownership of the arrays. + + + + + Various utilities + + + + + generic method for parsing arguments using CommandLine. If there's a problem, it throws an InvalidOperationException, with a message giving usage. + + The host environment + The argument object + The settings string (for example, "threshold-") + The name is used for error reporting only + + + + Make a string representation of an array + + + + + Convert string representation of char separator(s) + + + + + Convert from a string representation of separator to a char + + + + + Save the model summary. + + + + + Save the model in text format (if it can save itself) + + + + + Save the model in binary format (if it can save itself). + + + + + Save the model in text format (if it can save itself) + + + + + Save the model in text format (if it can save itself) + + + + + Drops slots from a fixed or variable sized column based on slot ranges. + + + + + Returns -1 for non vector and unknown length vectors. + + + + + Constructs slot dropper. It expects the slot ranges to be in sorted order and not overlap. + + 0 indicates variable sized vector. + Low limit of ranges to be dropped. + Upper limit of ranges to be dropped. + + + + Returns a getter that drops slots. + + + + + Drops slots from src and populates the dst with the resulting vector. Slots are + dropped based on min and max slots that were passed at the constructor. + + + + + Expand an extended wildcard pattern into a set of file paths. + + the pattern to expand + the set of file paths matching the pattern + + The wildcard pattern accepts the standard "*" and "?" placeholders. + "..." also refers to a recursive search over subdirectories. + "+" can also be used to make a union of several filenames or patterns. + Names of files that do not exist will be excluded. + + + + + A timer scope class that starts a when created, calculates and prints elapsed time, physical and virtual memory usages before sending these to the telemetry when disposed. + + + + + A dictionary of uint sequences of variable length. Stores the sequences as + byte sequences encoded with LEB128. Empty sequences (or null) are also valid. + + + + + Returns true if the sequence was added, or false if it was already in the pool. + + The array containing the sequence to add to the pool. + The location in the array of the first sequence element. + The exclusive end of the sequence. + To be populated with the id of the added sequence. + True if the sequence was added, false if the sequence was already present in the pool. + + + + Find the given sequence in the pool. If not found, returns -1. + + An integer sequence + The starting index of the sequence to find in the pool + The length of the sequence to find in the pool + The ID of the sequence if it is found, -1 otherwise + + + + Adds the item. Does NOT check for whether the item is already present. + + + + + Collection of extension methods for the to read from databases. + + + + Create a database loader . + The catalog. + Array of columns defining the schema. + + + Create a database loader . + The catalog. + Defines the settings of the load operation. + + + Create a database loader . + Defines the schema of the data to be loaded. Use public fields or properties + decorated with (and possibly other attributes) to specify the column + names and their data types in the schema of the loaded data. + The catalog. + + + + Class used to load data from one or more files. + + + + + Loads data from one or more file into an . + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The loader to use. + One or more paths from which to load data. + + + + + + + + + Class used to create components that operate on data, but are not part of the model training pipeline. + Includes components to load, save, cache, filter, shuffle, and split data. + + + + + A pair of datasets, for the train and test set. + + + + + Training set. + + + + + Testing set. + + + + + Create pair of datasets. + + Training set. + Testing set. + + + + Create a new over an enumerable of the items of user-defined type. + The user maintains ownership of the and the resulting data view will + never alter the contents of the . + Since is assumed to be immutable, the user is expected to support + multiple enumerations of the that would return the same results, unless + the user knows that the data will only be cursored once. + + One typical usage for streaming data view could be: create the data view that lazily loads data + as needed, then apply pre-trained transformations to it and cursor through it for transformation + results. + + The user-defined item type. + The enumerable data containing type to convert to a . + The optional schema definition of the data view to create. If null, + the schema definition is inferred from . + The constructed . + + + + + + + + + Create a new over an enumerable of the items of user-defined type using the provided , + which might contain more information about the schema than the type can capture. + + + The user maintains ownership of the and the resulting data view will + never alter the contents of the . + Since is assumed to be immutable, the user is expected to support + multiple enumerations of the that would return the same results, unless + the user knows that the data will only be cursored once. + One typical usage for streaming data view could be: create the data view that lazily loads data + as needed, then apply pre-trained transformations to it and cursor through it for transformation + results. + One practical usage of this would be to supply the feature column names through the . + + The user-defined item type. + The enumerable data containing type to convert to an . + The schema of the returned . + An with the given . + + + + Convert an into a strongly-typed . + + The user-defined item type. + The underlying data view. + Whether to return the same object on every row, or allocate a new one per row. + Whether to ignore the case when a requested column is not present in the data view. + Optional user-provided schema definition. If it is not present, the schema is inferred from the definition of T. + The that holds the data in . It can be enumerated multiple times. + + + + + + + + + Take an approximate bootstrap sample of . + + + This sampler is a streaming version of bootstrap resampling. + Instead of taking the whole dataset into memory and resampling, streams through the dataset and + uses a Poisson(1) distribution to select the number of times a + given row will be added to the sample. The parameter allows for the creation of a bootstap sample + and complementary out-of-bag sample by using the same . + + The input data. + The random seed. If unspecified, the random state will be instead derived from the . + Whether this is the out-of-bag sample, that is, all those rows that are not selected by the transform. + Can be used to create a complementary pair of samples by using the same seed. + + + + + + + + + Creates a lazy in-memory cache of . + + + Caching happens per-column. A column is only cached when it is first accessed. + In addition, are considered 'always needed', so these columns + will be cached the first time any data is requested. + + The input data. + The columns that must be cached whenever anything is cached. An empty array or null + value means that columns are cached upon their first access. + + + + + + + + + Filter the dataset by the values of a numeric column. + + + Keep only those rows that satisfy the range condition: the value of column + must be between (inclusive) and (exclusive). + + The input data. + The name of a column to use for filtering. + The inclusive lower bound. + The exclusive upper bound. + + + + + + + + + Filter the dataset by the values of a column. + + + Keep only those rows that satisfy the range condition: the value of a key column + (treated as a fraction of the entire key range) must be between (inclusive) and (exclusive). + This filtering is useful if the is a key column obtained by some 'stable randomization', + for example, hashing. + + The input data. + The name of a column to use for filtering. + The inclusive lower bound. + The exclusive upper bound. + + + + + + + + + Drop rows where any column in contains a missing value. + + The input data. + Name of the columns to filter on. If a row is has a missing value in any of + these columns, it will be dropped from the dataset. + + + + + + + + + Shuffle the rows of . + + + will shuffle the rows of any input using a streaming approach. + In order to not load the entire dataset in memory, a pool of rows will be used + to randomly select rows to output. The pool is constructed from the first rows + in . Rows will then be randomly yielded from the pool and replaced with the next row from + until all the rows have been yielded, resulting in a new of the same size as + but with the rows in a randomized order. + If the property of is true, then it will also be read into the + pool in a random order, offering two sources of randomness. + + The input data. + The random seed. If unspecified, the random state will be instead derived from the . + The number of rows to hold in the pool. Setting this to 1 will turn off pool shuffling and + will only perform a shuffle by reading in a random order. + If , the transform will not attempt to read in a random order and only use + pooling to shuffle. This parameter has no effect if the property of is . + + + + + + + + + + Skip rows in . + + + Skips the first rows from and returns an with all other rows. + + The input data. + Number of rows to skip. + + + + + + + + + Take rows from . + + + Returns returns an with the first rows from . + + The input data. + Number of rows to take. + + + + + + + + + Split the dataset into the train set and test set according to the given fraction. + Respects the if provided. + + The dataset to split. + The fraction of data to go into the test set. + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + Note that when performing a Ranking Experiment, the must be the GroupId column. + If no row grouping will be performed. + Seed for the random number generator used to select rows for the train-test split. + + + + + + + + + Split the dataset into cross-validation folds of train set and test set. + Respects the if provided. + + The dataset to split. + Number of cross-validation folds. + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + Note that when performing a Ranking Experiment, the must be the GroupId column. + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + + + + + + + + + Splits the data based on the splitColumn, and drops that column as it is only + intended to be used for splitting the data, and shouldn't be part of the output schema. + + + + + Based on the input samplingKeyColumn creates a new splitColumn that will be used by the callers to apply a RangeFilter that will produce train-test splits + or cross-validation splits. + + Notice that the new splitColumn might get dropped by the callers of this method after using it, as it wasn't part of + the input DataView schema. + + IHostEnvironment of the caller + DataView that should contain the "samplingKeyColumn". The new splitColumn will be added to this DataView. + Name of the column that will be used as base of the new splitColumn. + Notice that in other places in the code the samplingKeyColumn, and/or the splitColumn this method creates, + are refered to as "SamplingKeyColumn", "StratificationColumn", "SplitColumn", "GroupPreservationColumn" or similar names. + The seed that might be used by the transformers that will create the new splitColumn + If seed = null, then should we use the env seed? If seed = null, and this parameter is false, then we won't use a seed. + The name of the new column + + + + Extension methods that allow chaining of estimator and transformer pipelines. + + + + + Create a new composite loader estimator, by appending another estimator to the end of this data loader estimator. + + + + + Create a new composite loader estimator, by appending an estimator to this data loader. + + + + + Create a new estimator chain, by appending another estimator to the end of this estimator. + + + + + Append a 'caching checkpoint' to the estimator chain. This will ensure that the downstream estimators will be trained against + cached data. It is helpful to have a caching checkpoint before trainers that take multiple data passes. + + The starting estimator + The host environment to use for caching. + + + + Create a new composite loader, by appending a transformer to this data loader. + + + + + Create a new transformer chain, by appending another transformer to the end of this transformer chain. + + + + + Given an estimator, return a wrapping object that will call a delegate once + is called. It is often important for an estimator to return information about what was fit, which is why the + method returns a specifically typed object, rather than just a general + . However, at the same time, are often formed into pipelines + with many objects, so we may need to build a chain of estimators via where the + estimator for which we want to get the transformer is buried somewhere in this chain. For that scenario, we can through this + method attach a delegate that will be called once fit is called. + + The type of returned by + The estimator to wrap + The delegate that is called with the resulting instances once + is called. Because + may be called multiple times, this delegate may also be called multiple times. + A wrapping estimator that calls the indicated delegate whenever fit is called + + + + + + + + + Collection of extension methods for the to read from delimited text + files such as csv and tsv. + + + + + Create a text loader . + + The catalog. + Array of columns defining the schema. + The character used as separator between data points in a row. By default the tab character is used as separator. + Whether the file has a header with feature names. When a is provided, + indicates that the first line in the will be used for feature names, and that when + is called, the first line will be skipped. When there is no provided, just indicates that the loader should + skip the first line when is called, but columns will not have slot names annotations. This is + because the output schema is made when the loader is created, and not when is called. + The optional location of a data sample. The sample can be used to infer slot name annotations if present, and also the number + of slots in a column defined with with maximum index. + If the sample has been saved with ML.NET's , + it will also contain the schema information in the header that the loader can read even if is . + In order to use the schema defined in the file, all other arguments sould be left with their default values. + Whether the input may include double-quoted values. This parameter is used to distinguish separator characters + in an input value from actual separators. When , separators within double quotes are treated as part of the + input value. When , all separators, even those within quotes, are treated as delimiting a new column. + Remove trailing whitespace from lines. + Whether the input may include sparse representations. For example, a row containing + "5 2:6 4:3" means that there are 5 columns, and the only non-zero are columns 2 and 4, which have values 6 and 3, + respectively. Column indices are zero-based, so columns 2 and 4 represent the 3rd and 5th columns. + A column may also have dense values followed by sparse values represented in this fashion. For example, + a row containing "1 2 5 2:6 4:3" represents two dense columns with values 1 and 2, followed by 5 sparsely represented + columns with values 0, 0, 6, 0, and 3. The indices of the sparse columns start from 0, even though 0 represents the third column. + + + + + + + + + Create a text loader . + + The catalog. + Defines the settings of the load operation. + The optional location of a data sample. The sample can be used to infer slot name annotations if present, and also the number + of slots in defined with with maximum index. + If the sample has been saved with ML.NET's , + it will also contain the schema information in the header that the loader can read even if are not specified. + In order to use the schema defined in the file, all other sould be left with their default values. + + + + Create a text loader by inferencing the dataset schema from a data model type. + + Defines the schema of the data to be loaded. Use public fields or properties + decorated with (and possibly other attributes) to specify the column + names and their data types in the schema of the loaded data. + The catalog. + Column separator character. Default is '\t' + Whether the file has a header with feature names. When a is provided, + indicates that the first line in the will be used for feature names, and that when + is called, the first line will be skipped. When there is no provided, just indicates that the loader should + skip the first line when is called, but columns will not have slot names annotations. This is + because the output schema is made when the loader is created, and not when is called. + The optional location of a data sample. The sample can be used to infer slot name annotations if present. + Whether the input may include double-quoted values. This parameter is used to distinguish separator characters + in an input value from actual separators. When , separators within double quotes are treated as part of the + input value. When , all separators, even those whitin quotes, are treated as delimiting a new column. + Remove trailing whitespace from lines. + Whether the input may include sparse representations. For example, a row containing + "5 2:6 4:3" means that there are 5 columns, and the only non-zero are columns 2 and 4, which have values 6 and 3, + respectively. Column indices are zero-based, so columns 2 and 4 represent the 3rd and 5th columns. + A column may also have dense values followed by sparse values represented in this fashion. For example, + a row containing "1 2 5 2:6 4:3" represents two dense columns with values 1 and 2, followed by 5 sparsely represented + columns with values 0, 0, 6, 0, and 3. The indices of the sparse columns start from 0, even though 0 represents the third column. + + + + Create a text loader by inferencing the dataset schema from a data model type. + + The catalog. + Defines the settings of the load operation. Defines the settings of the load operation. No need to specify a Columns field, + as columns will be infered by this method. + The optional location of a data sample. The sample can be used to infer information + about the columns, such as slot names. + + + + Load a from a text file using . + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The catalog. + The path to the file(s). + The columns of the schema. + The character used as separator between data points in a row. By default the tab character is used as separator. + Whether the file has a header. When , the loader will skip the first line when + is called. + Whether the input may include double-quoted values. This parameter is used to distinguish separator characters + in an input value from actual separators. When , separators within double quotes are treated as part of the + input value. When , all separators, even those whitin quotes, are treated as delimiting a new column. + It is also used to distinguish empty values from missing values. When , missing value are denoted by consecutive + separators and empty values by \"\". When , empty values are denoted by consecutive separators and missing + values by the default missing value for each type documented in . + Remove trailing whitespace from lines. + Whether the input may include sparse representations. For example, a row containing + "5 2:6 4:3" means that there are 5 columns, and the only non-zero are columns 2 and 4, which have values 6 and 3, + respectively. Column indices are zero-based, so columns 2 and 4 represent the 3rd and 5th columns. + A column may also have dense values followed by sparse values represented in this fashion. For example, + a row containing "1 2 5 2:6 4:3" represents two dense columns with values 1 and 2, followed by 5 sparsely represented + columns with values 0, 0, 6, 0, and 3. The indices of the sparse columns start from 0, even though 0 represents the third column. + The data view. + + + + Load a from a text file using . + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The catalog. + Specifies a file or path of files from which to load. + Defines the settings of the load operation. + + + + + + + + + Load a from a text file using . + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The catalog. + The path to the file(s). + Column separator character. Default is '\t' + Whether the file has a header. When , the loader will skip the first line when + is called. + Whether the input may include double-quoted values. This parameter is used to distinguish separator characters + in an input value from actual separators. When , separators within double quotes are treated as part of the + input value. When , all separators, even those whitin quotes, are treated as delimiting a new column. + It is also used to distinguish empty values from missing values. When , missing value are denoted by consecutive + separators and empty values by \"\". When , empty values are denoted by consecutive separators and missing + values by the default missing value for each type documented in . + Remove trailing whitespace from lines. + Whether the input may include sparse representations. For example, a row containing + "5 2:6 4:3" means that there are 5 columns, and the only non-zero are columns 2 and 4, which have values 6 and 3, + respectively. Column indices are zero-based, so columns 2 and 4 represent the 3rd and 5th columns. + A column may also have dense values followed by sparse values represented in this fashion. For example, + a row containing "1 2 5 2:6 4:3" represents two dense columns with values 1 and 2, followed by 5 sparsely represented + columns with values 0, 0, 6, 0, and 3. The indices of the sparse columns start from 0, even though 0 represents the third column. + The data view. + + + + Load a from a text file using . + Note that 's are lazy, so no actual loading happens here, just schema validation. + + The catalog. + Specifies a file or path of files from which to load. + Defines the settings of the load operation. No need to specify a Columns field, + as columns will be infered by this method. + The data view. + + + + Save the as text. + + The catalog. + The data view to save. + The stream to write to. + The column separator. + Whether to write the header row. + Whether to write the header comment with the schema. + Whether to keep hidden columns in the dataset. + Whether to save columns in dense format even if they are sparse vectors. + + + + + + + + + Checks the validity of a given path, and whether or not it is a + valid path to a data file, or a path to a directory of files. + + Specifies a file or path of files from which to load. + + + + Class used to create instances of preview objects for debugging. + Note: this class and all methods should only be used for debugging and not in production code. + + + + + Extract a 'head' of the data view in a view that is convenient to debug. + + The data view to preview + Maximum number of rows to pull + + + + Preview an effect of the on a given . + + The transformer which effect we are previewing + The data view to use for preview + Maximum number of rows to pull + + + + Preview an effect of the on a given . + + The estimator which effect we are previewing + The data view to use for preview + Maximum number of rows to show in preview + Maximum number of rows to fit the estimator + + + + Preview an effect of the on a given . + + The data loader to preview + The source to pull the data from + Maximum number of rows to pull + + + + A series of vector utility functions, generally operating over arrays or + structures. The convention is that if a array or buffer is not modified, that is, it is treated + as a constant, it might have the name a or b or src, but in a situation + where the vector structure might be changed the parameter might have the name dst. + + + + + Returns the L2 norm squared of the vector (sum of squares of the components). + + + + + Returns the L2 norm squared of the vector (sum of squares of the components). + + + + + Returns the L2 norm of the vector. + + L2 norm of the vector + + + + Returns the L1 norm of the vector. + + L1 norm of the vector + + + + Returns the L-infinity norm of the vector (i.e., the maximum absolute value). + + L-infinity norm of the vector + + + + Returns the sum of elements in the vector. + + + + + Scales the vector by a real value. + + Incoming vector + Value to multiply vector with + + + + Scales the vector by a real value. + = * + + + + + Perform in-place vector addition += . + + + + + Perform in-place scaled vector addition + += * . + If either vector is dense, will be dense, unless + is 0 in which case this method does nothing. + + + + + Perform scalar vector addition + = * + + + + + + Calculate + + * + and store the result in . + + + + + Perform in-place scaled vector addition + += * , + except that this takes place in the section of starting + at slot . + + + + + Perform in-place scaling of a vector into another vector as + = * . + This is more or less equivalent to performing the same operation with + except perhaps more efficiently, + with one exception: if is 0 and + is sparse, will have a count of zero, instead of the + same count as . + + + + + Sparsify vector A (keep at most + values) + and optionally rescale values to the [-1, 1] range. + Vector to be sparsified and normalized. + How many top (positive) elements to preserve after sparsification. + How many bottom (negative) elements to preserve after sparsification. + Whether to normalize results to [-1,1] range. + + + + + Multiplies arrays Dst *= A element by element and returns the result in (Hadamard product). + + + + + Computes the dot product of two arrays + Where "offset" is considered to be a's zero index + + one array + the second array (given as a VBuffer) + offset in 'a' + the dot product + + + + Computes the dot product of two arrays + Where "offset" is considered to be a's zero index + + one array + the second array (given as a VBuffer) + offset in 'a' + the dot product + + + + Computes the L1 distance between two VBuffers + + one VBuffer + another VBuffer + L1 Distance from a to b + + + + Computes the Euclidean distance between two VBuffers + + one VBuffer + another VBuffer + Distance from a to b + + + + Computes the Euclidean distance squared between two VBuffers + + one VBuffer + another VBuffer + Distance from a to b + + + + Given two vectors a and b, calculate their L2 distance squared (|a-b|^2). + + The first vector, given as an array + The second vector, given as a VBuffer{float} + The squared L2 distance between a and b + + + + Perform in-place vector addition += . + + + + + Adds a multiple of a to a array. + + Buffer to add + Span to add to + Coefficient + + + + Adds a multiple of a to a array, with an offset into the destination. + + Buffer to add + Array to add to + The offset into at which to add + Coefficient + + + + Adds a multiple of an array to a second array. + + Array to add + Array to add to + Multiple + + + + Returns the L2 norm of the vector (sum of squares of the components). + + + + + Returns sum of elements in array + + + + + Multiples the array by a real value + + The array + Value to multiply vector with + + + + Computes the loss given the output and the ground truth. + Note that the return value has type Double because the loss is usually accumulated over many instances. + + + + + Derivative of the loss function with respect to output + + + + + Delegate signature for standardized classification loss functions. + + + + + Delegate signature for standardized regression loss functions. + + + + + Generic base class for all model parameters. + + Output type produced by the model. + + + + This emits a warning if there is Normalizer sub-model. + + + + + Interface for mapping input values to corresponding feature contributions. + This interface is commonly implemented by predictors. + + + + + Get a delegate for mapping Contributions to Features. + Result will contain vector with topN positive contributions(if available) and + bottomN negative contributions (if available). + For example linear predictor will have both negative and positive contributions. + For trees we will not have negative contributions, so bottom param will be ignored. + If normalization is requested that resulting values will be normalized to [-1, 1]. + + + + + Allows support for feature contribution calculation by model parameters. + + + + + Support for feature contribution calculation. + + + + + Interface for the Trainer Estimator. + + The type of the transformer returned by the estimator. + The type of the model parameters. + + + + Gets the information about the trainer. + + + + + This represents a basic class for 'simple trainer'. + A 'simple trainer' accepts one feature column and one label column, also optionally a weight column. + It produces a 'prediction transformer'. + + + + + A standard string to use in errors or warnings by subclasses, to communicate the idea that no valid + instances were able to be found. + + + + + The feature column that the trainer expects. + + + + + The label column that the trainer expects. Can be null, which indicates that label + is not used for training. + + + + + The weight column that the trainer expects. Can be null, which indicates that weight is + not used for training. + + + + + The information about the trainer: whether it benefits from normalization, caching etc. + + + + Trains and returns a . + + Derived class can overload this function. + For example, it could take an additional dataset to train with a separate validation set. + + + + + The columns that will be created by the fitted transformer. + + + + + This represents a basic class for 'simple trainer'. + A 'simple trainer' accepts one feature column and one label column, also optionally a weight column. + It produces a 'prediction transformer'. + + + + + The optional groupID column that the ranking trainers expects. + + + + + The base class for all trainer inputs. + + + + + The data to be used for training. Used only in entry-points, since in the API the expected mechanism is + that the user will use the or some other train + method. + + + + + Column to use for features. + + + + + Normalize option for the feature column. Used only in entry-points, since in the API the user is expected to do this themselves. + + + + + Whether trainer should cache input training data. Used only in entry-points, since the intended API mechanism + is that the user will use the or other method + like . + + + + + The base class for all trainer inputs that support a Label column. + + + + + Column to use for labels. + + + + + The base class for all trainer inputs that support a weight column. + + + + + Column to use for example weight. + + + + + The base class for all unsupervised trainer inputs that support a weight column. + + + + + Column to use for example weight. + + + + + The base class for all trainer inputs that support a group column. + + + + + Column to use for example groupId. + + + + + Options for creating a from a with specified standard columns active. + + + + + Check for a standard (known-length vector of float) feature column. + + + + + Check for a standard (known-length vector of float) feature column and determine its length. + + + + + Check for a standard binary classification label. + + + + + Check for a standard regression label. + + + + + Check for a standard multi-class label and determine its cardinality. If the column is a + key type, it must have known cardinality. For other numeric types, this scans the data + to determine the cardinality. + + + + + Check for a standard regression label. + + + + + Create a row cursor for the RoleMappedData with the indicated standard columns active. + This does not verify that the columns exist, but merely activates the ones that do exist. + + + + + Create a row cursor set for the with the indicated standard columns active. + This does not verify that the columns exist, but merely activates the ones that do exist. + + + + + Get the getter for the feature column, assuming it is a vector of float. + + + + + Get the getter for the feature column, assuming it is a vector of float. + + + + + Get a getter for the label as a float. This assumes that the label column type + has already been validated as appropriate for the kind of training being done. + + + + + Get a getter for the label as a float. This assumes that the label column type + has already been validated as appropriate for the kind of training being done. + + + + + Get the getter for the weight column, or null if there is no weight column. + + + + + Get the getter for the group column, or null if there is no group column. + + + + + The for the label column for binary classification tasks. + + name of the label column + + + + The for the float type columns. + + name of the column + + + + The for the label column for regression tasks. + + name of the weight column + + + + The for the feature column. + + name of the feature column + + + + The for the weight column. + + name of the weight column + + + + This is a shim class to translate the more contemporaneous + style transformers into the older now disfavored idiom, for components that still + need to operate via that older mechanism. (Mostly command line invocations, and so on.). + + The type of the new model parameters. + The type corresponding to the legacy predictor. + + + + This is a shim for legacy code that takes the more modern + interface, and maps it to the legacy code that wants an . The goal should be to + remove reliance on that interface if possible, but this may not be practical in the immediate term, so for the benefit + of scenarios like this we have this convenience function. + + The trainer estimator type. + The type of the model produced by the estimator. + The type of the predictor to be produced by the predictor. + The host environment. + The trainer estimator. + An implementation of the legacy trainer interface. + + + + This is the base class for a data cursor. Data cursors are specially typed + "convenience" cursor-like objects, less general than a but + more convenient for common access patterns that occur in machine learning. For + example, the common idiom of iterating over features/labels/weights while skipping + "bad" features, labels, and weights. There will be two typical access patterns for + users of the cursor. The first is just creation of the cursor using a constructor; + this is best for one-off accesses of the data. The second access pattern, best for + repeated accesses, is to use a cursor factory (usually a nested class of the cursor + class). This keeps track of what filtering options were actually useful. + + + + + The base constructor class for the factory-based cursor creation. + + + This method is called + + + + This method is called by in the event we have reached the end + of the cursoring. The intended usage is that it returns what flags will be passed to the signal + delegate of the cursor, indicating what additional options should be specified on subsequent + passes over the data. The base implementation checks if any rows were skipped, and if none were + skipped, it signals the context that it needn't bother with any filtering checks. + + Because the result will be "or"-red, a perfectly acceptable implementation is that this + return the default , in which case the flags will not ever change. + + If the cursor was created with a signal delegate, the return value of this method will be sent + to that delegate. + + + + + Calls Cursor.MoveNext() and this.Accept() repeatedly until this.Accept() returns true. + Returns false if Cursor.MoveNext() returns false. If you call Cursor.MoveNext() directly, + also call this.Accept() to fetch the values of the current row. Note that if this.Accept() + returns false, it's possible that not all values were fetched. + + + + + This fetches and validates values for the standard active columns. + It is called automatically by MoveNext(). Client code should only need + to deal with this if it calls MoveNext() on the underlying + directly. That is, this is only for very advanced scenarios. + + + + + This is the base class for a data cursor factory. The factory is a reusable object, + created with data and cursor options. From external non-implementing users it will + appear to be more or less stateless, but internally it is keeping track of what sorts + of filtering it needs to perform. For example, if we construct the factory with the + option that it needs to filter out rows with bad feature values, but on the first + iteration it is revealed there are no bad feature values, then it would be a complete + waste of time to check on subsequent iterations over the data whether there are bad + feature values again. + + + + + The typed analog to . + + Non-null if we are requesting a shuffled cursor. + The extra columns to activate on the row cursor + in addition to those required by the factory's options. + The wrapping typed cursor. + + + + The typed analog to , this provides a + partitioned cursoring of the data set, appropriate to multithreaded algorithms + that want to consume parallel cursors without any consolidation. + + Suggested degree of parallelism. + Non-null if we are requesting a shuffled cursor. + The extra columns to activate on the row cursor + in addition to those required by the factory's options. + The cursor set. Note that this needn't necessarily be of size + . + + + + Called by both the and factory methods. Implementors + should instantiate the particular wrapping cursor. + + The row cursor we will wrap. + The data from which the row cursor was instantiated. + The cursor options this row cursor was created with. + The action that our wrapping cursor will call. Implementors of the cursor + do not usually call it directly, but instead override + , whose return value is used to call + this action. + + + + + Accumulates signals from cursors, anding them together. Once it has + all of the information it needs to signal the factory itself, it will + do so. + + + + + This supports Weight (float), Group (ulong), and Id (RowId) columns. + + + + + This derives from and adds the feature column + as a . + + + + + This derives from the FeatureFloatVectorCursor and adds the Label (float) column. + + + + + This derives from the FeatureFloatVectorCursor and adds the Label (int) column, + enforcing multi-class semantics. + + + + + The loss function may know the close-form solution to the optimal dual update + Ref: Sec(6.2) of http://jmlr.org/papers/volume14/shalev-shwartz13a/shalev-shwartz13a.pdf + + + + + Compute the dual update (\Delta\alpha_i) in SDCA + - alpha: dual variable at the specified instance + - lambdaN: L2 const x number of instances + - cached invariant, hinted by the method above + + + + + The dual loss function for a training example. + If f(x) denotes the loss function on an individual training example, + then this function returns -f*(-x*), where f*(x*) is the Fenchel conjugate + of f(x). + + The label of the example. + The dual variable of the example. + + + + The Log Loss, also known as the Cross Entropy Loss. It is commonly used in classification tasks. + + + + + + + + + Hinge Loss, commonly used in classification tasks. + + + + + + + + + A smooth version of the function, commonly used in classification tasks. + + + + + + + + + Constructor for smoothed hinge losee. + + The smoothing constant. + + + + Exponential Loss, commonly used in classification tasks. + + + + + + + + + The Squared Loss, commonly used in regression tasks. + + + + + + + + + Poisson Loss function for Poisson Regression. + + + + + + + Tweedie loss, based on the log-likelihood of the Tweedie distribution. This loss function is used in Tweedie regression. + + + + + + + Constructor for Tweedie loss. + + Index parameter for the Tweedie distribution, in the range [1, 2]. + 1 is Poisson loss, 2 is gamma loss, and intermediate values are compound Poisson loss. + + + + A generic interface for models that can average parameters from multiple instance of self + + + + + A generic interface for models that can average parameters from multiple instance of self + + + + + Predictor that can specialize for quantile regression. It will produce a , given + an array of quantiles. + + + + + A generic interface for probability distributions + + Type of statistics result + + + + Returns Support sample for the distribution. + + Weights for the distribution.It will be null if the distribution is uniform. + Returns Support sample + + + + Predictors that can output themselves in a human-readable text format + + + + + Predictors that can output themselves in the Bing ini format. + + + + + Predictors that can output Summary. + + + + + Predictors that can output Summary in key value pairs. + The content of value 'object' can be any type such as integer, float, string or an array of them. + It is up the caller to check and decide how to consume the values. + + + + + Gets model summary including model statistics (if exists) in key value pairs. + + + + + Predictors that can output themselves in C#/C++ code. + + + + + Signature for trainers that produce predictors that in turn can be use to score features. + + + + + Interface implemented by components that can assign weights to features. + + + + + Returns the weights for the features. + There should be at most as many weights as there are features. + If there are less weights, it is implied that the remaining features have a weight of zero. + The larger the absolute value of a weights, the more informative/important the feature. + A weights of zero signifies that the feature is not used by the model. + + + + + Interface implemented by predictors that can score features. + + + + + Interface for predictors that can return a string array containing the label names from the label column they were trained on. + If the training label is a key with text key value metadata, it should return this metadata. The order of the labels should be consistent + with the key values. Otherwise, it returns null. + + + + + Whether this object really is capable of saving itself as part of an ONNX + pipeline. An implementor of this object might implement this interface, + but still return false if there is some characteristic of this object + only detectable during runtime that would prevent its being savable. (For example, + it may wrap some other object that may or may not be savable.) + + + + + This component know how to save himself in ONNX format. + + + + + Save as ONNX. + + The ONNX program being built + + + + This data model component is savable as ONNX. + + + + + This is savable in ONNX. Note that this is + typically called within an that is wrapping + this mapper, and has already been bound to it. + + + + + Save as ONNX. If is + false this should not be called. This method is intended to be called + by the wrapping scorer transform, and is intended to produce enough information + for that purpose. + + The ONNX program being built + The role mappings that was passed to this bindable + object, when the was created that this transform + is wrapping + Since this method is called from a scorer transform, + it is that transform that controls what the output column names will be, of + the outputs produced by this bindable mapper. This is the array that holds + those names, so that implementors of this method know what to produce in + . + + + + For simple mappers. Intended to be used for and + instances. + + + + + For simple mappers. Intended to be used for + instances. + + + + + A context for defining a ONNX output. The context internally contains the model-in-progress being built. This + same context object is iteratively given to exportable components via the interface + and subinterfaces, that attempt to express their operations as ONNX nodes, if they can. At the point that it is + given to a component, all other components up to that component have already attempted to express themselves in + this context, with their outputs possibly available in the ONNX graph. + + + + + Generates a unique name for the node based on a prefix. + + The prefix for the node + A name that has not yet been returned from this function, starting with + + + + Determine if a string has been used as ONNX variable name somewhere. + + examined string + True if the input argument has been used to denote an ONNX variable. Otherwise, False. + + + + Looks up whether a given data view column has a mapping in the ONNX context. Once confirmed, callers can + safely call . + + The data view column name + Whether the column is mapped in this context + + + + Check the required OpSet version satisfies our requirement + + + + + + Stops tracking a column. + + Column name to stop tracking + Remove associated ONNX variable. This is useful in the event where an output + variable is created through before realizing + the transform cannot actually save as ONNX. + + + + Removes an ONNX variable. If removeColumn is true then it also removes the tracking for the column associated with it. + + ONNX variable to remove. Note that this is an ONNX variable name, not an column name + IDataView column to stop tracking + + + + Removes a variable from the input columns list. This function is used only by the ColumnSelectingTransformer. + + ONNX variable to remove. + + + + ONNX variables are referred to by name. At each stage of a ML.NET pipeline, the corresponding + 's column names will map to a variable in the ONNX graph if the intermediate steps + used to calculate that value are things we knew how to save as ONNX. Retrieves the variable name that maps + to the column name at a given point in the pipeline execution. Callers should + probably confirm with whether a mapping for that data view column + already exists. + + The data view column name + The ONNX variable name corresponding to that data view column + + + + Establishes a new mapping from an data view column in the context, if necessary generates a unique name, and + returns that newly allocated name. + + The data view type associated with this column name + The data view column name + Whether we should skip the process of establishing the mapping from data view column to + ONNX variable name. + The returned value is the name of the variable corresponding + + + + Creates an ONNX node + + The name of the ONNX operator to apply + The names of the variables as inputs + The names of the variables to create as outputs, + which ought to have been something returned from + The name of the operator, which ought to be something returned from + The domain of the ONNX operator, if non-default + A node added to the in-progress ONNX graph, that attributes can be set on + + + + Convenience alternative to + for the case where there is exactly one input and output. + + The name of the ONNX operator to apply + The name of the variable as input + The name of the variable as output, + which ought to have been something returned from + The name of the operator, which ought to be something returned from + The domain of the ONNX operator, if non-default + A node added to the in-progress ONNX graph, that attributes can be set on + + + + Get the targeted ONNX version string. Only two values are allowed now: "Stable" and "Experimental". + + + + + + Retrieve the shape of an ONNX variable. Returns null if no shape for the specified variable can be found. + + The ONNX name of the returned shape + The shape of the retrieved variable + + + + Call this function to declare a global bool scalar + + The boolean value which is going to be added + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global float scalar + + The float number which is going to be added + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global integer scalar or smaller types + + The float number which is going to be added + The type of integer to be added, e.g. typeof(short). Use this for all integer types Int32 and smaller + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global string scalar + + The string which is going to be added into the ONNX graph + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global long scalar + + The long number which is going to be added into the ONNX graph + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global double scalar + + The double number which is going to be added into the ONNX graph + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global ulong or uint scalar + + The long number which is going to be added into the ONNX graph + true if value contains a ulong value and false if it contains uint + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global bool tensor + + The boolean values which are going to be added into the ONNX graph + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global float tensor + + The floats which are going to be added into the ONNX graph + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global tensor of integer or smaller types + + The ints which are going to be added into the ONNX graph + The type of ints which are going to be added into the ONNX graph, e.g. typeof(short). Use this for adding array initializers of integer types smaller than Int32 + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global string tensor + + The strings which are going to be added into the ONNX graph + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global long tensor + + The longs which are going to be added into the ONNX graph + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global double tensor + + The doubles which are going to be added into the ONNX graph + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + Call this function to declare a global ulong tensor + + The unsigned integers which are going to be added into the ONNX graph + Set to true if values contain ulong values false if they contain uint values + The shape of values + A string used as a seed to generate this initializer's name in the ONNX graph. + Whether a unique name should be picked for this initializer. + The initializer's ONNX name + + + + An abstraction for an ONNX node as created by + . + That method creates a with inputs and outputs, but this object can modify the node further + by adding attributes (in ONNX parlance, attributes are more or less constant parameterizations). + + + + + This wraps a , except with auxiliary information + that enables its inclusion relative to the ecosystem. + The idea is that one starts with a context built from some starting point, + then subsequent transforms via augment this context. + Beyond what is offered in , + has facilities to remember what column name in maps to + what token in the PFA being built up. + + + + + The internal PFA context, for an escape hatch. + + + + + This will map from the "current" name of a data view column, to a corresponding + token string. + + + + + This contains a map of those names in + + + + + This call will set to an appropriate output type based + on the columns requested. + + The schema corresponding to what we are outputting + The columns to output + Returns a complete PFA program, where the output will correspond to the subset + of columns from . + + + + Attempts to declare variables corresponding to a given column name. This + will attempt to produce a PFA let/set declaration, and also + do name mapping. The idea is that any transform implementing + will call this method to say, "hey, I produce this column, and this is the equivalent + PFA for it." + + The map from requested name, usually a dataview name, + to the declaration + An array of assigned names in the PFA corresponding to the items in + vars + + + + As a complimentary operation to , + this provides a mechanism for a transform to say, "hey, I am producing this column, but I + am not writing any PFA for it, so if anyone asks for this column downstream don't say I + have it." + + The names to hide + + + + Given an column name, return the string for referencing the corresponding + token in the PFA, or null if such a thing does not exist. + + + + + Given an column name, return whether in the PFA being built up + whether the corresponding PFA variable is still the input. This will return false + also in the event that the column is hidden, or simply not present. + + + + + Whether this object really is capable of saving itself as part of a PFA + pipeline. An implementor of this object might implement this interface, + but still return false if there is some characteristic of this object + only detectable during runtime that would prevent its being savable. (For example, + it may wrap some other object that may or may not be savable.) + + + + + This component know how to save himself in Pfa format. + + + + + Save as PFA. For any columns that are output, this interface should use + to declare themselves, + while any unwritable columns should be registered . + If is false this should not be called. + + The PFA program being built + + + + This data model component is savable as PFA. See https://dmg.org/pfa/ . + + + + + This is savable as a PFA. Note that this is + typically called within an that is wrapping + this mapper, and has already been bound to it. + + + + + Save as PFA. If is + false this should not be called. This method is intended to be called + by the wrapping scorer transform, and is intended to produce enough information + for that purpose. + + The PFA program being built + The role mappings that was passed to this bindable + object, when the was created that this transform + is wrapping + Since this method is called from a scorer transform, + it is that transform that controls what the output column names will be, of + the outputs produced by this bindable mapper. This is the array that holds + those names, so that implementors of this method know what to produce in + . + + + + For simple mappers. Intended to be used for and + instances. + + + + + Implementors of this method are responsible for providing the PFA expression that + computes the output of this object. Note that this method does not control what name + will be given to the output, and is not responsible for declaring the variable into + which the output will be returned. (Though, the method may of course declare other + variables, cells, or such to enable this computation.) + + The PFA context + The PFA token representing the input. In the case of + a predictor, for example, this would be a reference to the variable holding + the features array. + A PFA expression + + + + For simple mappers. Intended to be used for + instances. + + + + + The call for distribution predictors. Unlike , + this method requires this method to handle the declaration of the variables for their + outputs, into the names and provided. + + The PFA context + The PFA token representing the input. In nearly all cases this will + be the name of the variable holding the features array. + The name of the column where the implementing method should + save the expression, through , + or if null + + Similar to , except the probability expression. + + + + + A context for defining a restricted sort of PFA output. + + + + + For creating an anonymous function block. This in itself will not modify the context. + + + + + PFA is weird in that you do not declare types separately, you declare them as part of a variable + declaration. So, if you use a record type three times, that means one of the three usages must be + accompanied by a full type declaration, whereas the other two can just then identify it by name. + This is extremely silly, but there you go. + + Anyway: this will attempt to add a type to the list of registered types. If it returns true + then the caller is responsible, then, for ensuring that their PFA code they are generating contains + not only a reference of the type, but a declaration of the type. If however this returns false + then it can just refer to the type by name, since it has already been declared. + + The type to register + If this name was not already registered + + + + + Generic facilities for calling a function. + + The function to call + The parameters for the function + + + + + Builds a "cast" statement to the two vector types. + + The type of the item in the vector + The token we are casting + The name for the token as it will appear in the + The map case expression + The name for the token as it will appear in the + The array case expression + The cast/case expression + + + + This ensures that there is a function formatted as "count_type" (for example, "count_double"), + that takes either a map or array and returns the number of items in that map or array. + + The context to check for the existence of this + The item type this will operate on + + + + A string -> bool function for determining whether a string has content. + + + + + This class provides utilities for loading components from the model file generated by MAML commands. + + + + + Loads and returns the loader and transforms from the specified model stream. + + The host environment to use. + The model stream. + The data source to initialize the loader with. + Whether to extract the transforms and loader from the wrapped CompositeDataLoader. + The created data view. + + + + Loads and returns the loader and transforms from the specified repository reader. + + The host environment to use. + The repository reader. + The data source to initialize the loader with. + Whether to extract the transforms and loader from the wrapped CompositeDataLoader. + The created data view. + + + + Loads all transforms from the model stream, applies them sequentially to the provided data, and returns + the resulting data. If there are no transforms in the stream, or if there's no DataLoader stream at all + (this can happen if the model is produced by old TL), returns the source data. + If the DataLoader stream is invalid, throws. + + The host environment to use. + The starting data view. + The model stream. + The resulting data view. + + + + Loads all transforms from the model stream, applies them sequentially to the provided data, and returns + the resulting data. If there are no transforms in the stream, or if there's no DataLoader stream at all + (this can happen if the model is produced by old TL), returns the source data. + If the DataLoader stream is invalid, throws. + + The host environment to use. + The starting data view. + The repository reader. + The resulting data view. + + + + Loads a predictor from the model stream. Returns null iff there's no predictor. + + + + + Loads a predictor from the repository. Returns null iff there's no predictor. + + + + + Given a repository, returns the save context for saving the data loader model. + + + + + Loads data view (loader and transforms) from if is set to true, + otherwise loads loader only. + + + + + REVIEW: consider adding an overload that returns of + Loads optionally feature names from the repository directory. + Returns false iff no stream was found for feature names, iff result is set to null. + + + + + Save schema associations of role/column-name in . + + + + + Return role/column-name pairs loaded from . + + + + + Return role/column-name pairs loaded from a repository. + + + + + Returns the from a model stream, or null if there were no + role mappings present. + + + + + Returns the from a repository, or null if there were no + role mappings present. + + + + + The RepositoryStreamWrapper is a IMultiStreamSource wrapper of a Stream object in a repository. + It is used to deserialize RoleMappings.txt from a model zip file. + + + + + A custom entry stream wrapper that includes custom dispose logic for disposing the entry + when the stream is disposed. + + + + + Common output classes for trainers and transform entry-points. + + + + + The common output class for all transforms. + The output consists of the transformed dataset and the transformation model. + + + + + Interface that all API transform output classes will implement. + + + + + The common output class for all trainers. + The output is a trained predictor model. + + + + + The common output for calibrators. + + + + + Marker interface for calibrators output. + + + + + The common output for binary classification trainers. + + + + + Marker interface for binary classification trainer output. + + + + + The common output for multiclass classification trainers. + + + + + Marker interface for multiclass classification trainer output. + + + + + The common output for regression trainers. + + + + + Marker interface for regression trainer output. + + + + + The common output for multi regression trainers. + + + + + Marker interface for multi regression trainer output. + + + + + The common output for clustering trainers. + + + + + Marker interface for clustering trainer output. + + + + + The common output for anomaly detection trainers. + + + + + Marker interface for anomaly detection trainer output. + + + + + The common output for ranking trainers. + + + + + Marker interface for ranking trainer output. + + + + + The common output for sequence prediction trainers. + + + + + Marker interface for sequence prediction trainer output. + + + + + Interface that all API trainer output classes will implement. + + + + + Macro output class base. + + + + + The common output class for all macro entry points. + The output class is the type parameter. The expansion must guarantee + that the generated graph will generate all the outputs. + + The output class of the macro. + + + + The common output class for all evaluators. + + + + + The output class for classification evaluators. + + + + + The output class for regression evaluators. + + + + + Interface that all API evaluator output classes will implement. + + + + + Interface that all API evaluator output classes will implement. + + + + + Marker class for the arguments that can be used as variables + in an entry point graph. + + + + + Marker class for the arguments that can be used as array output variables + in an entry point graph. + + + + + Marker class for the arguments that can be used as dictionary output variables + in an entry point graph. + + + + + A descriptor of one 'variable' of the graph (input or output that is referenced as a $variable in the graph definition). + + + + + The value. It will originally start as null, and then assigned to the value, + once it is available. The type is one of the valid types according to . + + + + + Whether the given type is a valid one to be a variable. + + + + + Set the value. It is only allowed once. + + + + + A collection of all known variables, with an interface to add new variables, get values based on names etc. + This is populated by individual nodes when they parse their respective JSON definitions, and then the values are updated + during the node execution. + + + + + Returns true if added new variable, false if variable already exists. + + + + + A representation of one graph node. + + + + + An alphanumeric string indicating the stage of a node. + The fact that the nodes share the same stage ID hints that they should be executed together whenever possible. + + + + + Hints that the output of this node should be checkpointed. + + + + + The cost of running this node. NaN indicates unknown. + + + + + Checks the given JSON object key-value pair is a valid EntryPoint input and + extracts out any variables that need to be populated. These variables will be + added to the EntryPoint context. Input parameters that are not set to variables + will be immediately set using the input builder instance. + + + + + Checks the given JSON object key-value pair is a valid EntryPoint output. + Extracts out any variables that need to be populated and adds them to the + EntryPoint context. + + + + + Whether the node can run right now. + + + + + Represents a delayed binding in a JSON graph to an . + The subclasses allow us to express that we either desire the variable itself, + or a array-indexed or dictionary-keyed value from the variable, assuming it is + of an Array or Dictionary type. + + + + + Verifies that the name of the graph variable is a valid one + + + + + Represents the l-value assignable destination of a . + Subclasses exist to express the needed bindings for subslots + of a yet-to-be-constructed array or dictionary EntryPoint input parameter + (for example, "myVar": ["$var1", "$var2"] would yield two : (myVar, 0), (myVar, 1)) + + + + + The base class for all evaluators inputs. + + + + + Common input interfaces for TLC components. + + + + + Interface that all API transform input classes will implement. + + + + + Interface that all API trainable featurizers will implement. + + + + + Interface that all API trainer input classes will implement. + + + + + Interface that all API trainer input classes will implement. + + + + + Interface that all API trainer input classes will implement. + + + + + Interface that all API trainer input classes will implement. + + + + + Interface that all API trainer input classes will implement. + + + + + Interface that all API calibrator input classes will implement. + + + + + Interface that all API evaluator input classes will implement. + + + + + The class that creates and wraps around an instance of an input object and gradually populates all fields, keeping track of missing + required values. The values can be set from their JSON representation (during the graph parsing stage), as well as directly + (in the process of graph execution). + + + + + Retreives the field index for a field with the given alias, or -1 if + that field alias is not found. + + + + + Returns the Type of the given field, unwrapping any option + types to be of their inner type. If the given alias doesn't exist + this method returns null. + + + + + Returns the array of required values that were not specified using . + + + + + Set a value of a field specified by by parsing . + + + + + Set a value of a field specified by directly to . + + + + + Ensures that the given value can be assigned to an entry point field with + type . This method will wrap the value in the option + type if needed and throw an exception if the value isn't assignable. + + The exception context. + Type type of the field this value is to be assigned to. + The value, typically originates from either ParseJsonValue, or is an external, user-provided object. + + + + If outerType is an Optional{T}, the innerValue is wrapped in a constructed, explicit + Optional instance, otherwise the value is directly returned. + + + + + Returns the created instance. + + + + + This class wraps around the output object type, does not create an instance, and provides utility methods for field type checking + and extracting values. + + + + + Extract all values of a specified output object. + + + + + These are the common field names used in the JSON objects for defining the manifest. + + + + + Range specific field names. + + + + + Obsolete Attribute specific field names. + + + + + SweepableLongParam specific field names. + + + + + SweepableFloatParam specific field names. + + + + + SweepableDiscreteParam specific field names. + + + + + This class encapsulates the predictor and a preceding transform model, as the concrete and hidden + implementation of . + + + + + Entry point methods for row filtering and selection. + + + + + This encapsulates zero or more transform models. It does this by recording + the initial schema, together with the sequence of transforms applied to that + schema. + + + + + This contains the transforms to save instantiated on an with + appropriate initial schema. Note that the "root" of this is typically either + an empty or a with no rows. However, other root + types are possible, since we don't insist on this when loading a model + from a zip file. However, whenever we save, we force a to + be serialized for the root. + + + + + The input schema that this transform model was originally instantiated on. + Note that the schema may have columns that aren't needed by this transform model. + If an exists with this schema, then applying this transform model to it + shouldn't fail because of column type issues. + REVIEW: Would be nice to be able to trim this to the minimum needed somehow. Note + however that doing so may cause issues for composing transform models. For example, + if transform model A needs column X and model B needs Y, that is NOT produced by A, + then trimming A's input schema would cause composition to fail. + + + + + The resulting schema once applied to this model. The might have + columns that are not needed by this transform and these columns will be seen in the + produced by this transform. + + + + + Create a TransformModel containing the transforms from "result" back to "input". + + + + + Create a TransformModel containing the given (optional) transforms applied to the + given root schema. + + + + + Load a transform model. + + + + + Apply this transform model to the given input data. + + + + + Apply this transform model to the given input transform model to produce a composite transform model. + + + + + Save this transform model. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Provides data for the event. + + + + + Initializes a new instance of the class. + + The message being logged. + + + + Initializes a new instane of class that includes the kind and source of the message + + The message being logged + The type of message + The source of the message + + + + Gets the source component of the event + + + + + Gets the type of message + + + + + Gets the message being logged. + + + + + Gets the original message that doesn't include the source and kind + + + + + The common context for all ML.NET operations. Once instantiated by the user, it provides a way to + create components for data preparation, feature engineering, training, prediction, and model evaluation. + It also allows logging, execution control, and the ability to set repeatable random numbers. + + + + + Trainers and tasks specific to binary classification problems. + + + + + Trainers and tasks specific to multiclass classification problems. + + + + + Trainers and tasks specific to regression problems. + + + + + Trainers and tasks specific to clustering problems. + + + + + Trainers and tasks specific to ranking problems. + + + + + Trainers and tasks specific to anomaly detection problems. + + + + + Trainers and tasks specific to forecasting problems. + + + + + Data processing operations. + + + + + Operations with trained models. + + + + + Data loading and saving. + + + + + The handler for the log messages. + + + + + This is a catalog of components that will be used for model loading. + + + + + Gets or sets the location for the temp files created by ML.NET. + + + + + Allow falling back to run on CPU if couldn't run on GPU. + + + + + GPU device ID to run execution on, to run on CPU. + + + + + Create the ML context. + + Seed for MLContext's random number generator. See the remarks for more details. + + Many operations in ML.NET require randomness, such as + random data shuffling, random sampling, random parameter initialization, + random permutation, random feature selection, and many more. + MLContext's random number generator is the global source of randomness for + all of such random operations. + + If a fixed seed is provided by , MLContext environment becomes + deterministic, meaning that the results are repeatable and will remain the same across multiple runs. + For instance in many of ML.NET's API reference example code snippets, a seed is provided. + That's because we want the users to get the same output as what's included in example comments, + when they run the example on their own machine. + + Generally though, repeatability is not a requirement and that's the default behavior. + If a seed is not provided by , i.e. it's set to , + MLContext environment becomes non-deterministic and outputs change across multiple runs. + + There are many operations in ML.NET that don't use any randomness, such as + min-max normalization, concatenating columns, missing value indication, etc. + The behavior of those operations are deterministic regardless of the seed value. + + Also ML.NET trainers don't use randomness *after* the training is finished. + So, the predictions from a loaded model don't depend on the seed value. + + + + + Class used by to save and load trained models. + + + + + Save a transformer model and the loader used to create its input data to the stream. + + The trained model to be saved. Note that this can be , as a shorthand + for an empty transformer chain. Upon loading with + the returned value will be an empty . + The loader that was used to create data to train the model. + A writeable, seekable stream to save to. + + + + Save a transformer model and the loader used to create its input data to the file. + + The trained model to be saved. Note that this can be , as a shorthand + for an empty transformer chain. Upon loading with + the returned value will be an empty . + The loader that was used to create data to train the model. + Path where model should be saved. + + + + Save a transformer model and the schema of the data that was used to train it to the stream. + + The trained model to be saved. Note that this can be , as a shorthand + for an empty transformer chain. Upon loading with the returned value will + be an empty . + The schema of the input to the transformer. This can be . + A writeable, seekable stream to save to. + + + + Save a transformer model and the schema of the data that was used to train it to the file. + + The trained model to be saved. Note that this can be , as a shorthand + for an empty transformer chain. Upon loading with the returned value will + be an empty . + The schema of the input to the transformer. This can be . + Path where model should be saved. + + + + + + + + + Load the model and its input schema from a stream. + + A readable, seekable stream to load from. + Will contain the input schema for the model. If the model was saved without + any description of the input, there will be no input schema. In this case this can be . + The loaded model. + + + + + + + + + Load the model and its input schema from a file. + + Path to a file where the model should be read from. + Will contain the input schema for the model. If the model was saved without + any description of the input, there will be no input schema. In this case this can be . + The loaded model. + + + + + + + + + Given a loader, test try to "decompose" it into a source loader, and its transform if any. + If necessary an empty chain will be created to stand in for the trivial transformation; it + should never return . + + + + + Load a transformer model and a data loader model from a stream. + + A readable, seekable stream to load from. + The data loader from the model stream. Note that if there is no data loader, + this method will throw an exception. The scenario where no loader is stored in the stream should + be handled instead using the method. + The transformer model from the model stream. + + + + Load a transformer model and a data loader model from a file. + + Path to a file where the model should be read from. + The data loader from the model stream. Note that if there is no data loader, + this method will throw an exception. The scenario where no loader is stored in the stream should + be handled instead using the method. + The transformer model from the model file. + + + + Create a prediction engine for one-time prediction (default usage). + + The class that defines the input data. + The class that defines the output data. + The transformer to use for prediction. + Whether to throw an exception if a column exists in + but the corresponding member doesn't exist in + . + Additional settings of the input schema. + Additional settings of the output schema. + + + + + + + + + Create a prediction engine for one-time prediction. + It's mainly used in conjunction with , + where input schema is extracted during loading the model. + + The class that defines the input data. + The class that defines the output data. + The transformer to use for prediction. + Input schema. + + + + Create a prediction engine for one-time prediction. + It's mainly used in conjunction with , + where input schema is extracted during loading the model. + + The class that defines the input data. + The class that defines the output data. + The transformer to use for prediction. + Advanced configuration options. + + + + Extension methods to create a prediction engine. + + + + + Create a prediction engine for one-time prediction. + + The class that defines the input data. + The class that defines the output data. + The transformer to use for prediction. + The environment to use. + Whether to throw an exception if a column exists in + but the corresponding member doesn't exist in + . + Additional settings of the input schema. + Additional settings of the output schema. + Whether the prediction engine owns the transformer and should dispose of it. + + + + Signature for the loaders of calibrators. + + + + + This is a legacy interface still used for the command line and entry-points. All applications should transition away + from this interface and still work instead via of , + for example, the subclasses of . However for now we retain this + until such time as those components making use of it can transition to the new way. No public surface should use + this, and even new internal code should avoid its use if possible. + + + + + True if the calibrator needs training, false otherwise. + + + + Training calibrators: provide the output and the class label + True if it needs more examples, false otherwise + + + Finish up training after seeing all examples + + + + This is a shim interface implemented only by to enable + access to the underlying legacy interface for those components that use + that old mechanism that we do not care to change right now. + + + + + An interface for predictors that take care of their own calibration given an input data view. + + + + + provides a weekly-typed way to access strongly-typed + and + . + is commonly used in weekly-typed expressions. The + existence of this interface is just for supporting existing codebase, so we discourage its uses. + + + + + Base class for calibrated model parameters. + + + + + Class for allowing a post-processing step, defined by , to 's + output. + + Type being calibrated. + Type used to calibrate. + + For example, in binary classification, can convert support vector machine's + output value to the probability of belonging to the positive (or negative) class. Detailed math materials + can be found at this paper. + + + + + 's output would calibrated by . + + + + + is used to post-process score produced by . + + + + + + + + Encapsulates a predictor and a calibrator that implement . + Its implementation of combines both the predictors and the calibrators. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Whether we can save as PFA. Note that this depends on whether the underlying predictor + can save as PFA, since in the event that this in particular does not get saved, + + + + + Trains a calibrator, if needed. + + The environment to use. + The channel. + The calibrator trainer. + The maximum rows to use for calibrator training. + The trainer used to train the predictor. + The predictor that needs calibration. + The examples to used for calibrator training. + The original predictor, if no calibration is needed, + or a metapredictor that wraps the original predictor and the newly trained calibrator. + + + + Trains a calibrator. + + The environment to use. + The channel. + The calibrator trainer. + The predictor that needs calibration. + The examples to used for calibrator training. + The maximum rows to use for calibrator training. + The original predictor, if no calibration is needed, + or a metapredictor that wraps the original predictor and the newly trained calibrator. + + + + Trains a calibrator. + + The environment to use. + The channel. + The calibrator trainer. + The predictor that needs calibration. + The examples to used for calibrator training. + The maximum rows to use for calibrator training. + The original predictor, if no calibration is needed, + or a metapredictor that wraps the original predictor and the newly trained calibrator. + + + + Trains a by dividing the range of the outputs into equally sized bins. + The probability of belonging to a particular class, for example class 1, is the number of class 1 instances in the bin, divided by the total number + of instances in that bin. + + + + + Initializes a new instance of . + + + + + The naive binning-based calibrator. + + + + + Bool required by the interface ISingleCanSaveOnnx, returns true if + and only if calibrator can be exported in ONNX. + + + + The bin size. + + + The minimum value in the first bin. + + + The value of probability in each bin. + + + Initializes a new instance of . + The to use. + The minimum value in the first bin. + The values of the probability in each bin. + The bin size. + + + + Given a classifier output, produce the probability + + + + + Base class for calibrator trainers. + + + + + An enumerator over the entries sorted by score. + + + + + + Training calibrators: provide the classifier output and the class label + + + + + The Platt calibrator calculates the probability following: + P(x) = 1 / (1 + exp( * x + ) + . + + + + Slope value for this calibrator. + + + + + Offset value for this calibrator + + + + + Initializes a new instance of . + + + + Given a classifier output, produce the probability. + + + + The isotonic calibrator. + + + The function that is implemented by this calibrator is: + P(x) = + + [i], if [i] <= x <= [i]> + Linear interpolation between [i] and [i+1], if [i] < x < [i+1] + [0], if x < [0] + [n], if x > [n] + + + + + + Bottom borders of PAV intervals. + + + + + Upper borders of PAV intervals. + + + + + Values of PAV intervals. + + + + + Initializes a new instance of . + + The to use. + The minimum values for each piece. + The maximum values for each piece. + The actual values for each piece. + + + Given a classifier output, produce the probability. + + + + This method calibrates the specified predictor using the specified calibrator, training on the specified data. + + A host to pass to the components created in this method. + The input object, containing the predictor, the data and an integer indicating the maximum number + of examples to use for training the calibrator. + The kind of calibrator to use. + A object, containing an . + + + + An interface for probability calibrators. + + + + Given a classifier output, produce the probability. + + + + Base class for calibrator estimators. + + + CalibratorEstimators take an (the output of a ) + that contains a "Score" column, and converts the scores to probabilities(through binning, interpolation etc.), based on the type. + They are used in pipelines where the binary classifier produces non-calibrated scores. + + + + + Gets the output of the after fitting the calibrator. + Fitting the calibrator will add a column named "Probability" to the schema. If you already had such a column, a new one will be added. + The same annotation data that would be produced by is marked as + being present on the output, if it is present on the input score column. + + The input . + + + + Fits the scored creating a that can transform the data by adding a + column containing the calibrated . + + + A trained that will transform the data by adding the + column. + + + + Implemented by deriving classes that create a concrete calibrator. + + + + + An instance of this class is the result of calling . + If you pass a scored data, to the Transform method, it will add the Probability column + to the dataset. The Probability column is the value of the Score normalized to be a valid probability. + The is an instance of + where score can be viewed as a feature while probability is treated as the label. + + The used to transform the data. + + + + The Platt calibrator estimator. + + + + + Initializes a new instance of + + The environment to use. + /// The name of the label column.This is consumed both when this estimator + is fit and when the estimator is consumed. + The name of the score column.This is consumed when this estimator is fit, + but not consumed by the resulting transformer. + The name of the example weight column (optional). Note that if specified this is + consumed when this estimator is fit, but not consumed by the resulting transformer. + + + + Obtains the probability values by applying the sigmoid: f(x) = 1 / (1 + exp(-slope * x + offset). + Note that unlike, say, , the fit function here is trivial + and just "fits" a calibrator with the provided parameters. + + + + + Initializes a new instance of . + + + Note that unlike many other calibrator estimators this one has the parameters pre-specified. + This means that it does not have a label or weight column specified as an input during training. + + The environment to use. + The slope in the function of the exponent of the sigmoid. + The offset in the function of the exponent of the sigmoid. + The score column name. This is consumed both when this estimator + is fit and when the estimator is consumed. + + + + The implementation obtained by training a or a . + + + + + The naive binning-based calibrator estimator. + + + It divides the range of the outputs into equally sized bins. In each bin, + the probability of belonging to class 1, is the number of class 1 instances in the bin, divided by the total number + of instances in the bin. + + + + + Initializes a new instance of + + The environment to use. + The label column name. This is consumed when this estimator is fit, + but not consumed by the resulting transformer. + The score column name. This is consumed both when this estimator + is fit and when the estimator is consumed. + The optional weight column name. Note that if specified this is + consumed when this estimator is fit, but not consumed by the resulting transformer. + + + + The implementation obtained by training a + + + + + The isotonic calbrated estimator. + + + Calibrator finds a stepwise constant function (using the Pool Adjacent Violators Algorithm aka PAV) that minimizes the squared error. + + + + + Initializes a new instance of + + The environment to use. + The label column name. This is consumed when this estimator is fit, + but not consumed by the resulting transformer. + The score column name. This is consumed both when this estimator + is fit and when the estimator is consumed. + The optional weight column name. Note that if specified this is + consumed when this estimator is fit, but not consumed by the resulting transformer. + + + + The implementation obtained by training a + + + + + An interface for all the transformer that can transform data based on the field. + The implementations of this interface either have no feature column, or have more than one feature column, and cannot implement the + , which most of the ML.Net tranformer implement. + + The or used for the data transformation. + + + + An ISingleFeaturePredictionTransformer contains the name of the + and its type, . Implementations of this interface, have the ability + to score the data of an input through the + + The or used for the data transformation. + + + The name of the feature column. + + + Holds information about the type of the feature column. + + + + An ISingleFeaturePredictionTransformer contains the name of the . + Implementations of this interface, have the ability to score the data of an input + through the + + + + The name of the feature column. + + + + Utility class to run the pipeline to completion and produce a strongly-typed IEnumerable as a result. + Doesn't allocate memory for every row: instead, yields the same row object on every step. + + + + + Class for making single predictions on a previously trained model (and preceding transform pipeline). + + + This class can also be used with trained pipelines that do not end with a predictor: in this case, the + 'prediction' will be just the outcome of all the transformations. + + The PredictionEngine is NOT thread safe. Using it in a threaded environment can cause unexpected issues. + + + + + Run prediction pipeline on one example. + + The example to run on. + The object to store the prediction in. If it's null, a new one will be created, otherwise the old one + is reused. + + + + Base class for making single predictions on a previously trained model (and the preceding transform pipeline). + + The user-defined type that holds the example. + The user-defined type that holds the prediction. + + + + Provides output schema. + + + + + Run prediction pipeline on one example. + + The example to run on. + The result of prediction. A new object is created for every call. + + + + Run prediction pipeline on one example. + + The example to run on. + The object to store the prediction in. If it's null, a new one will be created, otherwise the old one + is reused. + + + + Options for the + + + + + Base class for the trainer catalogs. + + + + + Results for specific cross-validation fold. + + + + + Model trained during cross validation fold. + + + + + Scored test set with for this fold. + + + + + Fold number. + + + + + Results of running cross-validation. + + Type of metric class. + + + + Metrics for this cross-validation fold. + + + + + Model trained during cross-validation fold. + + + + + The scored hold-out set for this fold. + + + + + Fold number. + + + + + Train the on folds of the data sequentially. + Return each model and each scored test dataset. + + + + + Subclasses of will provide little "extension method" hookable objects + (for example, something like ). User code will only + interact with these objects by invoking the extension methods. The actual component code can work + through to get more "hidden" information from this object, + for example, the environment. + + + + + Class used by to create instances of binary classification components, + such as trainers and calibrators. + + + + + The list of trainers for performing binary classification. + + + + + Class used by to create instances of binary classification trainers. + + + + + Evaluates scored binary classification data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the probability column in , the calibrated version of . + The name of the predicted label column in . + The evaluation results for these calibrated outputs. + + + + Evaluates scored binary classification data, without probability-based metrics. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + The evaluation results for these uncalibrated outputs. + + + + Run cross-validation over folds of , by fitting , + and respecting if provided. + Then evaluate each sub-model against and return a object, which + do not include probability-based metrics, for each sub-model. Each sub-model is evaluated on the cross-validation fold that it did not see during training. + + The data to run cross-validation on. + The estimator to fit. + Number of cross-validation folds. + The label column (for evaluation). + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + Per-fold results: metrics, models, scored datasets. + + + + Run cross-validation over folds of , by fitting , + and respecting if provided. + Then evaluate each sub-model against and return a object, which + includes probability-based metrics, for each sub-model. Each sub-model is evaluated on the cross-validation fold that it did not see during training. + + The data to run cross-validation on. + The estimator to fit. + Number of cross-validation folds. + The label column (for evaluation). + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + Per-fold results: metrics, models, scored datasets. + + + + Method to modify the threshold to existing model and return modified model. + + The type of the model parameters. + Existing model to modify threshold. + New threshold. + New model with modified threshold. + + + + The list of calibrators for performing binary classification. + + + + + Class used by to create instances of binary classification calibrators. + + + + + Adds probability column by training naive binning-based calibrator. + + The name of the label column. + The name of the score column. + + + + + + + + + Adds probability column by training platt calibrator. + + The name of the label column. + The name of the score column. + The name of the example weight column (optional). + + + + + + + + + Adds probability column by specifying platt calibrator. + + The slope in the function of the exponent of the sigmoid. + The offset in the function of the exponent of the sigmoid. + The name of the score column. + + + + + + + + + Adds probability column by training pair adjacent violators calibrator. + + + The calibrator finds a stepwise constant function (using the Pool Adjacent Violators Algorithm aka PAV) that minimizes the squared error. + Also know as Isotonic regression + + The name of the label column. + The name of the score column. + The name of the example weight column (optional). + + + + + + + + + Class used by to create instances of clustering components, + such as trainers. + + + + + The list of trainers for performing clustering. + + + + + The clustering context. + + + + + Class used by to create instances of clustering trainers. + + + + + Evaluates scored clustering data. + + The scored data. + The name of the score column in . + The name of the optional label column in . + If present, the metric will be computed. + The name of the optional features column in . + If present, the metric will be computed. + The evaluation result. + + + + Run cross-validation over folds of , by fitting , + and respecting if provided. + Then evaluate each sub-model against and return metrics. + + The data to run cross-validation on. + The estimator to fit. + Number of cross-validation folds. + Optional label column for evaluation (clustering tasks may not always have a label). + Optional features column for evaluation (needed for calculating Dbi metric) + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + + + + Class used by to create instances of multiclass classification components, + such as trainers. + + + + + The list of trainers for performing multiclass classification. + + + + + Class used by to create instances of multiclass classification trainers. + + + + + Evaluates scored multiclass classification data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + If given a positive value, the will be filled with + the top-K accuracy, that is, the accuracy assuming we consider an example with the correct class within + the top-K values as being stored "correctly." + The evaluation results for these calibrated outputs. + + + + Run cross-validation over folds of , by fitting , + and respecting if provided. + Then evaluate each sub-model against and return metrics. + + The data to run cross-validation on. + The estimator to fit. + Number of cross-validation folds. + The label column (for evaluation). + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + Per-fold results: metrics, models, scored datasets. + Per-fold results: metrics, models, scored datasets. + + + + Class used by to create instances of regression components, + such as trainers and evaluators. + + + + + The list of trainers for performing regression. + + + + + Class used by to create instances of regression trainers. + + + + + Evaluates scored regression data. + + The scored data. + The name of the label column in . + The name of the score column in . + The evaluation results for these calibrated outputs. + + + + Run cross-validation over folds of , by fitting , + and respecting if provided. + Then evaluate each sub-model against and return metrics. + + The data to run cross-validation on. + The estimator to fit. + Number of cross-validation folds. + The label column (for evaluation). + Name of a column to use for grouping rows. If two examples share the same value of the , + they are guaranteed to appear in the same subset (train or test). This can be used to ensure no label leakage from the train to the test set. + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + Per-fold results: metrics, models, scored datasets. + + + + Class used by to create instances of ranking components, + such as trainers and evaluators. + + + + + The list of trainers for performing regression. + + + + + Class used by to create instances of ranking trainers. + + + + + Evaluates scored ranking data. + + The scored data. + The name of the label column in . + The name of the groupId column in . + The name of the score column in . + The evaluation results for these calibrated outputs. + + + + Evaluates scored ranking data. + + The scored data. + Options to control the evaluation result. + The name of the label column in . + The name of the groupId column in . + The name of the score column in . + The evaluation results for these calibrated outputs. + + + + Run cross-validation over folds of , by fitting , + and respecting if provided. + Then evaluate each sub-model against and return metrics. + + The data to run cross-validation on. + The estimator to fit. + Number of cross-validation folds. + The label column (for evaluation). + The name of the groupId column in , which is used to group rows. + This column will automatically be used as SamplingKeyColumn when splitting the data for Cross Validation, + as this is required by the ranking algorithms + If no row grouping will be performed. + Seed for the random number generator used to select rows for cross-validation folds. + Per-fold results: metrics, models, scored datasets. + + + + Class used by to create instances of anomaly detection components, + such as trainers and evaluators. + + + + + The list of trainers for anomaly detection. + + + + + Class used by to create instances of anomaly detection trainers. + + + + + Evaluates scored anomaly detection data. + + The scored data. + The name of the label column in . + The name of the score column in . + The name of the predicted label column in . + The number of false positives to compute the metric. + Evaluation results. + + + + Creates a new with the specified . + If the provided is the same as the threshold it simply returns . + Note that by default the threshold is 0.5 and valid scores range from 0 to 1. + + A trained . + The new threshold value that will be used to determine the label of a data point + based on the predicted score by the model. + + + + Class used by to create instances of forecasting components. + + + + + The list of trainers for performing forecasting. + + + + + Class used by to create instances of forecasting trainers. + + + + + This class approximates bootstrap sampling of a dataview. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Whether this is the out-of-bag sample, that is, all those rows that are not selected by the transform. + The random seed. If unspecified random state will be instead derived from the environment. + Whether we should attempt to shuffle the source data. By default on, but can be turned off for efficiency. + When shuffling the output, the number of output rows to keep in that pool. Note that shuffling of output is completely distinct from shuffling of input. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Entry point methods for bootstrap sampling. + + + + + Concatenates one or more input columns into a new output column. + + + creates a new column, + named as specified in the output column name parameters, where the input values are concatenated in a vector. + The order of the concatenation follows the order in which the input columns are specified. + + If the input columns' data type is a vector the output column data type remains the same. However, the size of + the vector will be the sum of the sizes of the input vectors. + + Check the See Also section for links to usage examples. + ]]> + + + + + + Initializes a new instance of + + The local instance of . + The name of the resulting column. + The columns to concatenate into one single column. + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + for the . + + + + + + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + Names of output and input column pairs on which the transformation is applied. + + + + + Keeps or drops selected columns from an . + + + + operates on the schema of a given by dropping or keeping selected columns from the schema. + + It is commonly used to remove unwanted columns before serializing a dataset or writing it to a file. + It is not necessary to drop unused columns before training or performing transforms, + as the is lazily evaluated and will not actually materialize the columns until needed. + In the case of serialization, every column in the schema will be written out. If there are columns + that should not be saved, this estimator can be used to remove them. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + Constructs the Select Columns Estimator. + + Instance of the host environment. + The array of column names to keep. + + + + Constructs the Select Columns Estimator. + + Instance of the host environment. + The array of column names to keep, cannot be set with . + The array of column names to drop, cannot be set with . + If true will keep hidden columns and false will remove hidden columns. The argument is + ignored if the Estimator is in "drop mode". + If false will check for any columns given in + or that are missing from the input. If a missing column exists a + SchemaMistmatch exception is thrown. If true, the check is not made. + + + + KeepColumns is used to select a list of columns that the user wants to keep on a given an input. Any column not specified + will be dropped from the output output schema. + + Instance of the host environment. + The array of column names to keep. + + + + DropColumns is used to select a list of columns that user wants to drop from a given input. Any column not specified will + be maintained in the output schema. + + Instance of the host environment. + The array of column names to drop. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting an . + + + + + Helper function to determine the model version that is being loaded. + + + + + Back-compatibility function that handles loading the DropColumns Transform. + + + + + Back-compatibility that is handling the HiddenColumnOption from ChooseColumns. + + + + + Backwards compatibility helper function to convert the HiddenColumnOption to a boolean. + + + + + Backwards compatibility helper function that loads a Choose Column Transform. + + + + + Schema propagation for transformers. + Returns the output schema of the data, if the input schema is like the one provided. + + + + + Constructs a row-to-row mapper based on an input schema. If + is false, then an exception is thrown. If the input schema is in any way + unsuitable for constructing the mapper, an exception should likewise be thrown. + + The input schema for which we should get the mapper. + The row to row mapper. + + + + Take the data in, make transformations, output the data. + Note that 's are lazy, so no actual transformations happen here, just schema validation. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Returns whether the given column is active in this row. + + + + + resulting from fitting a . + + + + + Feature Contribution Calculation computes model-specific contribution scores for each feature. + Note that this functionality is not supported by all the models. See for a list of the sported models. + + The environment to use. + Trained model parameters that support Feature Contribution Calculation and which will be used for scoring. + The name of the feature column that will be used as input. + The number of positive contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with positive contributions than , the rest will be returned as zeros. + The number of negative contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with negative contributions than , the rest will be returned as zeros. + Whether the feature contributions should be normalized to the [-1, 1] interval. + + + + Estimator for . Computes model-specific per-feature contributions to the score of each input vector. + + + | + | Output column data type | Known-sized vector of | + | Exportable to ONNX | No | + + Scoring a dataset with a trained model produces a score, or prediction, for each example. To understand and explain these predictions + it can be useful to inspect which features influenced them most significantly. This transformer computes a model-specific + list of per-feature contributions to the score for each example. These contributions can be positive (they make the score higher) or negative + (they make the score lower). + + Feature Contribution Calculation is currently supported for the following models: + - Regression: + - + - + - + - + - + - + - + - + - + - Binary Classification: + - + - + - + - + - + - + - + - + - + - + - + - + - Ranking: + - + - + + For linear models, the contribution of a given feature is equal to the product of feature value times the corresponding weight. Similarly, + for Generalized Additive Models (GAM), the contribution of a feature is equal to the shape function for the given feature evaluated at + the feature value. + + For tree-based models, the calculation of feature contribution essentially consists in determining which splits in the tree have the most impact + on the final score and assigning the value of the impact to the features determining the split. More precisely, the contribution of a feature + is equal to the change in score produced by exploring the opposite sub-tree every time a decision node for the given feature is encountered. + Consider a simple case with a single decision tree that has a decision node for the binary feature F1. Given an example that has feature F1 + equal to true, we can calculate the score it would have obtained if we chose the subtree corresponding to the feature F1 being equal to false + while keeping the other features constant. The contribution of feature F1 for the given example is the difference between the original score + and the score obtained by taking the opposite decision at the node corresponding to feature F1. This algorithm extends naturally to models with + many decision trees. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Feature Contribution Calculation computes model-specific contribution scores for each feature. + Note that this functionality is not supported by all the models. See for a list of the sported models. + + The environment to use. + A that supports Feature Contribution Calculation, + and which will also be used for scoring. + The number of positive contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with positive contributions than , the rest will be returned as zeros. + The number of negative contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with negative contributions than , the rest will be returned as zeros. + TODO + Whether the feature contributions should be normalized to the [-1, 1] interval. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + This transform adds columns containing either random numbers distributed + uniformly between 0 and 1 or an auto-incremented integer starting at zero. + It will be used in conjunction with a filter transform to create random + partitions of the data, used in cross validation. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the output column. + Seed to start random number generator. + Use an auto-incremented integer starting at zero instead of a random number. + + + + Public constructor corresponding to SignatureDataTransform. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + resulting from fitting a . + + + + + Constructor for case where you don't need to 'train' transform on data, for example, InvertHash for all columns set to zero. + + Host Environment. + Description of dataset columns and how to process them. + + + + The usage of this interface may seem a bit strange, but it is deliberately structured in this way. + One will note all implementors of this interface are structs, and that where used, you never use + the interface itself, but instead an implementing type. This is due to how .NET and the JIT handles + generic types that are also value types. For value types, it will actually generate new assembly + code, which will allow effectively code generation in a way that would not happen if the hasher + implementor was a class, or if the hasher implementation was just passed in with a delegate, or + the hashing logic was encapsulated as the abstract method of some class. + + In a prior time, there were methods for all possible combinations of types, scalar-ness, vector + sparsity/density, whether the hash was sparsity preserving or not, whether it was ordered or not. + This resulted in an explosion of methods that made the hash transform code somewhat hard to maintain. + On the other hand, the methods were fast, since they were effectively (by brute enumeration) completely + inlined, so introducing any levels of abstraction would slow things down. By doing things in this + fashion using generics over struct types, we are effectively (via the JIT) doing code generation so + things are inlined and just as fast as the explicit implementation, while making the code rather + easier to maintain. + + + + + Constructs an instance to accumulate hash/value pairs + from a single column as parameterized by this transform, with values fetched from + the row. + + The input source row, from which the hashed values can be fetched + The extra column info + The number of input hashed valuPres to accumulate per output hash value + A hash getter, built on top of . + + + + This calculates the hash/value pair from the current value of the column, and does + appropriate processing of them to build the invert hash map. + + + + + Estimator for , which hashes either single valued columns or vector columns. For vector columns, + it hashes each slot separately. + + + , , , and OrderedHashing are not supported. | + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Describes how the transformer handles one column pair. + + + + + Name of the column resulting from the transformation of . + + + + Name of column to transform. + + + Number of bits to hash into. Must be between 1 and 31, inclusive. + + + Hashing seed. + + + Whether the position of each term should be included in the hash, only applies to inputs of vector type. + + + + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the key names of the annotations for the new column. Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + + Whether the slots of a vector column should be hashed into a single value. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Number of bits to hash into. Must be between 1 and 31, inclusive. + Hashing seed. + Whether the position of each term should be included in the hash, only applies to inputs of vector type. + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + Whether the slots of a vector column should be hashed into a single value. + + + + Initializes a new instance of . + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. + If set to , the value of the will be used as source. + Number of bits to hash into. Must be between 1 and 31, inclusive. + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + Whether the position of each term should be included in the hash, only applies to inputs of vector type. + Whether the slots of a vector column should be hashed into a single value. + + + + Initializes a new instance of . + + Host Environment. + Description of dataset columns and how to process them. + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + Create a that takes and transforms one column. + + + + + Create a that takes multiple pairs of columns. + + + + + Factory method for SignatureDataTransform. + + + + + Factory method for SignatureLoadModel. + + + + + Factory method for SignatureLoadDataTransform. + + + + + Factory method for SignatureLoadRowMapper. + + + + + A map is an object capable of creating the association from an input type, to an output + type. This mapping is constructed from key metadata, with the input type being the key type + and the output type being the type specified by the key metadata. + + + + + The item type of the output type, that is, either the output type or, + if a vector, the item type of that type. + + + + + The column index in Infos. + + + + + The parent transform. + + + + + Estimator for . Converts the key types back to their original values. + + + + + + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + This is for the singleton case. This should be equivalent to both Bag and Ord over + a vector of size one. + + + + + This is for the bagging case - vector input and outputs should be added. + + + + + This is for the indicator (non-bagging) case - vector input and outputs should be concatenated. + + + + + Estimator for . Maps the value of a key + into a known-sized vector of . + + + + + + + + + + Describes how the transformer handles one column pair. + + + + Name of the column resulting from the transformation of . + + + Name of column to transform. + + + + Whether to combine multiple indicator vectors into a single vector of counts instead of concatenating them. + This is only relevant when the input column is a vector of keys. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Whether to combine multiple indicator vectors into a single vector of counts instead of concatenating them. + This is only relevant when the input column is a vector of keys. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the output column. + Name of the input column. If this is null '' will be used. + + + + Returns whether metadata of the indicated kind should be passed through from the source column. + + + + + Remaps multiclass labels to binary T,F labels, primarily for use with OVA. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Label of the positive class. + Name of the output column. + Name of the input column. If this is null '' will be used. + + + + + Removes missing values from vector type columns. + + + This transform removes the entire row if any of the input columns have a missing value in that row. + This preprocessing is required for many ML algorithms that cannot work with missing values. + Useful if any missing entry invalidates the entire row. + If the is set to true, this transform would do the exact opposite, + it will keep only the rows that have missing values. + + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + If true, keep only rows that contain NA values, and filter the rest. + Name of the columns. Only these columns will be used to filter rows having 'NA' values. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Gets the appropriate column value getter for a mapped column. If the column + is not mapped, this returns false with the out parameters getting default values. + If the column is mapped but the TValue is of the wrong type, an exception is + thrown. + + + + + The normalize transform for support of normalization via the mechanism. + More contemporaneous API usage of normalization ought to use + and rather than this structure. + + + + + A helper method to create a MinMax normalizer. + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the output column. + Name of the column to be transformed. If this is null '' will be used. + + + + Factory method corresponding to SignatureDataTransform. + + + + + Factory method corresponding to SignatureDataTransform. + + + + + Factory method corresponding to SignatureDataTransform. + + + + + Factory method corresponding to SignatureDataTransform. + + + + + Base class for tracking min and max values for a vector valued column. + It tracks min, max, number of non-sparse values (vCount) and number of ProcessValue() calls (trainCount). + NaNs are ignored when updating min and max. + + + + + Class for computing the mean and variance for a vector valued column. + It tracks the current mean and the M2 (sum of squared diffs of the values from the mean), + the number of NaNs and the number of non-zero elements. + Uses the algorithm described here: https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm + + + + + Based on the algorithm on GeeksForGeeks https://www.geeksforgeeks.org/median-of-stream-of-integers-running-integers/. + + The new number to account for in our median calculation. + The current median. + The MaxHeap that has all the numbers below the median. + The MinHeap that has all the numbers above the median. + + + + This heap class is based on the one done by Egor Grishechko, https://egorikas.com/max-and-min-heap-implementation-with-csharp/, which he based + on the implementation shown by HackerRank https://www.youtube.com/watch?v=t0Cq6tVNRBA. It is used for calculation the median in a much more + memory efficient way. + + + + + + Based on the algorithm on GeeksForGeeks https://www.geeksforgeeks.org/median-of-stream-of-integers-running-integers/. + This heap approach uses much less memory and is faster then other approaches I could find, specifically list based ones. + + The new number to account for in our median calculation. + The current median. + The MaxHeap that has all the numbers below the median. + The MinHeap that has all the numbers above the median. + + + + Base class for tracking median values for a single valued column. + It tracks median values of non-sparse values (vCount). + NaNs are ignored when updating min and max. + + + + + Base class for tracking min and max values for a vector valued column. + It tracks min, max, number of non-sparse values (vCount) and number of ProcessValue() calls (trainCount). + NaNs are ignored when updating min and max. + + + + + Class for computing the mean and variance for a vector valued column. + It tracks the current mean and the M2 (sum of squared diffs of the values from the mean), + the number of NaNs and the number of non-zero elements. + Uses the algorithm described here: https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm + + + + + Base class for tracking median values for a single valued column. + It tracks median values of non-sparse values (vCount). + + + + + for the . + + + or or a known-sized vector of those types. | + | Output column data type | The same data type as the input column | + | Exportable to ONNX | Yes | + + The resulting NormalizingEstimator will normalize the data in one of the following ways based upon how it was created: + * Min Max - A linear rescale that is based upon the minimum and maximum values for each row. + * Mean Variance - Rescale each row to unit variance and, optionally, zero mean. + * Log Mean Variance - Rescale each row to unit variance, optionally, zero mean based on computations in log scale. + * Binning - Bucketizes the data in each row and performs a linear rescale based on the calculated bins. + * Supervised Binning - Bucketize the data in each row and performas a linear rescale based on the calculated bins. The bin calculation is based on correlation of the Label column. + * Robust Scaling - Optionally centers the data and scales based on the range of data and the quantile min and max values provided. This method is more robust to outliers. + + ### Estimator Details + The interval of the normalized data depends on whether fixZero is specified or not. fixZero defaults to true. + When fixZero is false, the normalized interval is $[0,1]$ and the distribution of the normalized values depends on the normalization mode. For example, with Min Max, the minimum + and maximum values are mapped to 0 and 1 respectively and remaining values fall in between. + When fixZero is set, the normalized interval is $[-1,1]$ with the distribution of the normalized values depending on the normalization mode, but the behavior is different. + With Min Max, the distribution depends on how far away the number is from 0, resulting in the number with the largest distance being mapped to 1 if its a positive number + or -1 if its a negative number. The distance from 0 will affect the distribution with a majority of numbers that are closer together normalizing towards 0. Robust Scaling + does not use fixZero, and its values are not constrained to $[0,1]$ or $[-1,1]$. Its scaling is based on the range of the data and the quantile min and max provided. + + The equation for the output $y$ of applying both Mean Variance and Log Mean Variance on input $x$ without + using the CDF option is: $y = (x - \text{offset}) \text{scale}$. Where offset and scale are computed during training. + + Using the CDF option it is: $y = 0.5 * (1 + \text{ERF}((x - \text{mean}) / (\text{standard deviation} * sqrt(2)))$. + Where ERF is the [Error Function](https://en.wikipedia.org/wiki/Error_function) used to approximate the CDF of a random variable assumed to + normally distributed. The mean and standard deviation are computing during training. + + To create this estimator use one of the following: + * [NormalizeMinMax](xref:Microsoft.ML.NormalizationCatalog.NormalizeMinMax(Microsoft.ML.TransformsCatalog, System.String, System.String, System.Int64, System.Boolean)) + * [NormalizeMeanVariance](xref:Microsoft.ML.NormalizationCatalog.NormalizeMeanVariance(Microsoft.ML.TransformsCatalog,System.String,System.String,System.Int64,System.Boolean,System.Boolean)) + * [NormalizeLogMeanVariance](xref:Microsoft.ML.NormalizationCatalog.NormalizeLogMeanVariance(Microsoft.ML.TransformsCatalog,System.String,System.String,System.Int64,System.Boolean)) + * [NormalizeBinning](xref:Microsoft.ML.NormalizationCatalog.NormalizeBinning(Microsoft.ML.TransformsCatalog,System.String,System.String,System.Int64,System.Boolean,System.Int32)) + * [NormalizeSupervisedBinning](xref:Microsoft.ML.NormalizationCatalog.NormalizeSupervisedBinning(Microsoft.ML.TransformsCatalog,System.String,System.String,System.String,System.Int64,System.Boolean,System.Int32,System.Int32)) + * [NormalizeRobustScaling](xref:Microsoft.ML.NormalizationCatalog.NormalizeRobustScaling(Microsoft.ML.TransformsCatalog,System.String,System.String,System.Int64,System.Boolean,System.UInt32,System.UInt32)) + + Check the above links for usage examples. + ]]> + + + + + + Linear rescale such that minimum and maximum values are mapped between -1 and 1. + + + + + Rescale to unit variance and, optionally, zero mean. + + + + + Rescale to unit variance on the log scale. + + + + + Bucketize and then rescale to between -1 and 1. + + + + + Bucketize and then rescale to between -1 and 1. Calculates bins based on correlation with the Label column. + + + + + Optionally centers the data around 0 and then scales based on the data range and the quantile min and max values provided. + + + + + Initializes a new instance of . + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. + If set to , the value of the will be used as source. + The indicating how to the old values are mapped to the new values. + + + + Initializes a new instance of . + + The private instance of . + The indicating how to the old values are mapped to the new values. + An array of (outputColumnName, inputColumnName) tuples. + + + + Initializes a new instance of . + + The private instance of the . + An array of defining the inputs to the Normalizer, and their settings. + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting an . + + + + An accessor of the column functions within . + + + + The configuration of the normalizer. The i-th element describes the i-th input-output column pair. + + + + + The normalization configurations of input columns. It returns the normalization parameters applied to the -th input column. + + column index. + the normalization parameters applied to the -th input column. + + + + Base class for all the data normalizer models like , + , . + + + + + The model parameters generated by affine normalization transformations. + + + + + + + + + + The scales. In the scalar case, this is a single value. In the vector case this is of length equal + to the number of slots. Function is (input - offset) * scale. + + + + + The offsets. In the scalar case, this is a single value. In the vector case this is of length equal + to the number of slots, or of length zero if all the offsets are zero. + + + + + Initializes a new instance of + + + + + The model parameters generated by cumulative distribution normalization transformations. + The cumulative density function is parameterized by and + the as observed during fitting. + + + + + + + + + + The mean(s). In the scalar case, this is a single value. In the vector case this is of length equal + to the number of slots. + + + + + The standard deviation(s). In the scalar case, this is a single value. In the vector case this is of + length equal to the number of slots. + + + + + Whether the we ought to apply a logarithm to the input first. + + + + + Initializes a new instance of + + + + + The model parameters generated by buckettizing the data into bins with monotonically + increasing . + The value is constant from bin to bin, for most cases. + /// + + + + The standard deviation(s). In the scalar case, these are the bin upper bounds for that single value. + In the vector case it is a jagged array of the bin upper bounds for all slots. + + + + + The frequency of the datapoints per each bin. + + + + + If normalization is performed with set to true, + the offset indicates the displacement of zero, if any. + + + + + Initializes a new instance of + + + + + Filters a dataview on a column of type Single, Double or Key (contiguous). + Keeps the values that are in the specified min/max range. NaNs are always filtered out. + If the input is a Key type, the min/max are considered percentages of the number of values. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the input column. + Minimum value (0 to 1 for key types). + Maximum value (0 to 1 for key types). + Whether to include the upper bound. + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This is a transformer that, given any input dataview (even an unshufflable one) will, + when we construct a randomized cursor attempt to perform a rude version of shuffling + using a pool. A pool of a given number of rows will be constructed from the first + rows in the input cursor, and then, successively, the output cursor will yield one + of these rows and replace it with another row from the input. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + The pool will have this many rows + If true, the transform will not attempt to shuffle the input cursor but only shuffle based on the pool. This parameter has no effect if the input data was not itself shufflable. + If true, the transform will always provide a shuffled view. + + + + Constructor corresponding to SignatureDataTransform. + + + + + Since shuffling requires serving up items potentially out of order we need to know + how to save and then copy out values that we read. This transform knows how to save + and copy out only primitive and vector valued columns, but nothing else, so any + other columns are dropped. + + + + + Utility to check whether all types in an input schema are shufflable. + + + + + Utility to take a cursor, and get a shuffled version of this cursor. + + + + + This describes the row cursor. Let's imagine we instantiated our shuffle transform + over a pool of size P. Logically, externally, the cursor acts as if you have this pool + P and whenever you randomly sample and yield a row from it, that row is then discarded + and replaced with the next row from the input source cursor. + + It would also be possible to implement in a way that cleaves closely to this logical + interpretation, but this would be inefficient. We instead have a buffer of larger size + P+B. A consumer (running presumably in the main thread) sampling and fetching items and a + producer (running in a task, which may be running in a different thread) filling the buffer + with items to sample, utilizing this extra space to enable an efficient possibly + multithreaded scheme. + + The consumer, for its part, at any given time "owns" a contiguous portion of this buffer. + (A contiguous portion of this buffer we consider to be able to wrap around, from the end + to the beginning. The buffer is accessed in a "circular" fashion.) Consider that this portion + is broken into three distinct regions: there is a sort of middle "sampling" region + (usually of size P but possibly smaller when we've reached the end of the input and so are + running out of rows to sample), a region before this sampling region composed of already + sampled "dead" rows, and a "presampling" region after this sampling region composed of + rows ready to be sampled in future iterations, but that we are not sampling yet (in order + to behave equivalently to the simple logical model of at any given time sampling P items). + The producer owns the complement of the portion owned by the consumer. + + As the cursor progresses, the producer fills in successive items in its portion of the + buffer it owns, and passes them off to the consumer (not one item at a time, but rather in + batches, to keep down the amount of intertask communication). The consumer in addition to + taking ownership of these items, will also periodically pass dead items back to the producer + (again, not one dead item at a time, but in batches when the number of dead items reaches + a certain threshold). + + This communication is accomplished using a pair of BufferBlock instances, through which + the producer and consumer are notified how many additional items they can take ownership + of. + + As the consumer "selects" a row from the pool of selectable rows each time it moves to + the next row, this randomly selected row is considered to be the "first" index, since this + makes its subsequent transition to being a dead row much simpler. It would be inefficient to + swap all the values in each column's buffer to accomplish this to make the selected row + first, of course, so one rather swaps an index, so that these nicely behavior contiguous + circular indices, get mapped in an index within the buffers, through a permutation maintained + in the pipeIndices array. + + The result is something functionally equivalent to but but considerably faster than the + simple implementation described in the first paragraph. + + + + + Pipes, in addition to column values, will also communicate extra information + enumerated within this. This enum serves the purpose of providing nice readable + indices to these "extra" information in pipes. + + + + + There is one of these created per active column plus any extra info, and is a mechanism + through which the producer is able to ingest and store this data from the source cursor, + and the consumer able to fetch data stored at particular indices. + + + + + Creates a shuffle pipe, given a value getter. + + The size of the internal array. + The column type, which determines what type of pipe is created + A getter that should be a value getter corresponding to the + column type + An appropriate + + + + Reads the cursor column's current value, and store it in the indicated index, + in the internal array. + + + + + Copies the values stored at an index through a previous method, + call to a value. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Allows limiting input to a subset of row at an optional offset. Can be used to implement data paging. + + + + + Initializes a new instance of . + + Host Environment. + Options for the skip operation. + Input . + + + + Initializes a new instance of . + + Host Environment. + Options for the take operation. + Input . + + + Creates instance of class from context. + + + Saves class data to context + + + + This filter can not shuffle + + + + + Returns the computed count of rows remaining after skip and take operation. + Returns null if count is unknown. + + + + + SkipTakeFilter does not support cursor sets, so this can always be zero. + + + + + Transform to drop slots from columns. If the column is scalar, the only slot that can be dropped is slot 0. + If all the slots are to be dropped, a vector valued column will be changed to a vector of length 1 (a scalar column will retain its type) and + the value will be the default value. + + + + + Returns true if the range is valid. + + + + + Describes how the transformer handles one input-output column pair. + + + + + Describes how the transformer handles one input-output column pair. + + Name of the column resulting from the transformation of . + Name of the column to transform. + If set to , the value of the will be used as source. + Ranges of indices in the input column to be dropped. Setting max in to null sets max to int.MaxValue. + + + + Initializes a new object. + + The environment to use. + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Specifies the lower bound of the range of slots to be dropped. The lower bound is inclusive. + Specifies the upper bound of the range of slots to be dropped. The upper bound is exclusive. + + + + Initializes a new object. + + The environment to use. + Specifies the ranges of slots to drop for each column pair. + + + + Both scalars and vectors are acceptable types, but the item type must have a default value which means it must be + a string, a key, a float or a double. + + + + + Computes the types (column and slotnames), the length reduction, categorical feature indices + and whether the column is suppressed. + The slotsMin and slotsMax arrays should be sorted and the intervals should not overlap. + + The input schema + The column index in Infos + The slots to be dropped. + Whether the column is suppressed (all slots dropped) + The column type + Categorical feature indices. + + + + Convenience method for creating . + The allows for model stacking (i.e. to combine information from multiple predictive models to generate a new model) + in the pipeline by using the scores from an already trained model. + + Host Environment. + Input . + The model file. + Role name for the features. + Role name for the group column. + + + + Convenience method for creating . + The allows for model stacking (i.e. to combine information from multiple predictive models to generate a new model) + in the pipeline by training a model first and then using the scores from the trained model. + + Unlike , the trains the model on the fly as name indicates. + + Host Environment. + Input . + The object i.e. the learning algorithm that will be used for training the model. + Role name for features. + Role name for label. + Role name for the group column. + + + + The base class for all transform inputs. + + + + + The input dataset. Used only in entry-point methods, since the normal API mechanism for feeding in a dataset to + create an is to use the method. + + + + + resulting from fitting a . + + + + + A collection of describing the settings of the transformation. + + + + + Convinence constructor for simple one column case. + + Host Environment. + Name of the output column. + Name of the column to be transformed. If this is null '' will be used. + The expected type of the converted column. + New key count if we work with key type. + + + + Create a that takes multiple pairs of columns. + + + + + Estimator for . Converts the underlying input column type to a new type. + The input and output column types need to be compatible. + + + + + + + + + + + Describes how the transformer handles one column pair. + + + + + Name of the column resulting from the transformation of . + + + + + Name of column to transform. If set to , the value of the will be used as source. + + + + + The expected kind of the converted column. + + + + + New key count, if we work with key type. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + The expected kind of the converted column. + Name of column to transform. If set to , the value of the will be used as source. + New key count, if we work with key type. + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + The expected kind of the converted column. + Name of column to transform. If set to , the value of the will be used as source. + New key count, if we work with key type. + + + + Convinence constructor for simple one column case. + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The expected kind of the converted column. + + + + Create a that takes multiple pairs of columns. + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Estimator for creating a key-value map using the pairs of values in the input data + + + + + + + + + + Constructs the ValueMappingEstimator, key type -> value type mapping + + The environment to use. + An instance of that contains the key and value columns. + Name of the key column in . + Name of the value column in . + The list of names of the input columns to apply the transformation, and the name of the resulting column. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Estimator for creating a key-value map using the pairs of values in the input data + + + + + + Specifies the key type. + Specifies the value type. + + + + + Constructs the ValueMappingEstimator, key type -> value array type mapping + + The environment to use. + A containing key column and value column. + The key column in . + The value column in . + The list of columns to apply. + + + + The DataViewHelper provides a set of static functions to create a DataView given a list of keys and values. + + + + + Helper function to retrieve the Primitive type given a Type + + + + + Helper function for a reverse lookup given value. This is used for generating the metadata of the value column. + + + + + Helper function to add a column to an ArrayDataViewBuilder. This handles the case if the type is a string. + + + + + Helper function to add a column to an ArrayDataViewBuilder. This handles the case if the type is an array of strings. + + + + + Helper function to create an IDataView given a list of key and vector-based values + + + + + Helper function that builds the IDataView given a list of keys and non-vector values + + + + + resulting from fitting a . + + + + + Helper function to determine the model version that is being loaded. + + + + + Base class that contains the mapping of keys to values. + + + + + Implementation mapping class that maps a key of TKey to a specified value of TValue. + + + + + Generates the mapping based on the IDataView + + + + + Retrieves the byte array given a dataview and columns + + + + + for the + . Converts a set of categorical + values (for example, US state abbreviations) into numerical key values (e.g. 1-50). + The numerical key can be used directly by classification algorithms. + + + + + + + + + + + + Controls how the order of the output keys. + + + + + Values will be assigned keys in the order in which they appear. + + + + + Values will be assigned keys according to their sort via an ordinal comparison for the type. + + + + + Describes how the transformer handles one column pair. + + + + + Describes how the transformer handles one column pair. + + + + + Describes how the transformer handles column pairs. + + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Maximum number of keys to keep per column when auto-training. + The order in which keys are assigned. + If set to , keys are assigned in the order encountered. + If set to , values are sorted, and keys are assigned based on the sort order. + If set to true, use text type + for values, regardless of the actual input type. When doing the reverse + mapping, the values are text rather than the original input type. + + + + Initializes a new instance of . + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Maximum number of keys to keep per column when auto-training. + The order in which keys are assigned. + If set to , keys are assigned in the order encountered. + If set to , values are sorted, and keys are assigned based on the sort order. + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + Returns a single-column , based on values from , + in the case where is set. If that is not set, this will + return . + + The host environment. + The host channel to use to mark exceptions and log messages. + The name of the file. Must be specified if this method is called. + The single column to select out of this transform. If not specified, + this method will attempt to guess. + The loader creator. If we will attempt to determine + this + Whether we should try to convert to the desired type by ourselves when doing + the term map. This will not be true in the case that the loader was adequately specified automatically. + The single-column data containing the term data from the file. + + + + Utility method to create the file-based . + + + + + This builds the instances per column. + + + + + These are objects shared by both the scalar and vector implementations of + to accumulate individual scalar objects, and facilitate the creation of a . + + + + + The item type we are building into a term map. + + + + + The number of items that would be in the map if created right now. + + + + + Called at the end of training, to get the final mapper object. + + + + + Handling for the "terms" arg. + + The input terms argument + The channel against which to report errors and warnings + + + + Handling for the "term" arg. + + The input terms argument + The channel against which to report errors and warnings + + + + The sorted builder outputs things so that the keys are in sorted order. + + + + + Instantiates. + + The type we are mapping + This indicates whether a given value will map + to the missing value. If this returns true for a value then we do not attempt + to store it in the map. + Indicates whether to sort mapping IDs by input values. + + + + Ensures that the item is in the set. Returns true iff it added the item. + + The value to consider + + + + Handling for the "terms" arg. + + The input terms argument + The channel against which to report errors and warnings + + + + Handling for the "term" arg. + + The input terms argument + The channel against which to report errors and warnings + + + + The trainer is an object that given an instance, maps a particular + input, whether it be scalar or vector, into this and allows us to continue training on it. + + + + + Creates an instance of appropriate for the type at a given + row and column. + + The row to fetch from + The column to get the getter from + The maximum count of items to map + Whether we attempt to automatically convert + the input type to the desired type + The builder we add items to + An associated training pipe + + + + Indicates to the that we have reached a new row and should consider + what to do with these values. Returns false if we have determined that it is no longer necessary + to call this train, because we've already accumulated the maximum number of values. + + + + + Returns a over the items in this column. Note that even if this + was trained over a vector valued column, the particular implementation returned here + should be a mapper over the item type. + + + + + Given this instance, bind it to a particular input column. This allows us to service + requests on the input dataset. This should throw an error if we attempt to bind this + to the wrong type of item. + + + + + A map is an object capable of creating the association from an input type, to an output + type. The input type, whatever it is, must have as its input item + type, and will produce either , or a vector type with that output + type if the input was a vector. + + Note that instances of this class can be shared among multiple + instances. To associate this with a particular transform, use the method. + + These are the immutable and serializable analogs to the used in + training. + + + + + The item type of the input type, that is, either the input type or, + if a vector, the item type of that type. + + + + + The output item type. This will always be of known cardinality. Its count is always + equal to , unless is 0 in which case this has + key count of 1, since a count of 0 would indicate an unbound key. If we ever improve + key types so they are capable of distinguishing between the set they index being + empty vs. of unknown or unbound cardinality, this should change. + + + + + The number of items in the map. + + + + + A pool based text mapping implementation. + + The string pool + + + + A mapper bound to a particular transform, and a particular column. These wrap + a , and facilitate mapping that object to the inputs of + a particular column, providing both values and metadata. + + + + + Allows us to optionally register metadata. It is also perfectly legal for + this to do nothing, which corresponds to there being no metadata. + + + + + Writes out all terms we map to a text writer, with one line per mapped term. + The line should have the format mapped key value, then a tab, then the term + that is mapped. The writer should not be closed, as it will be used to write + all term maps. We should write terms. + + The writer to which we write terms + + + + Returns what the default value maps to. + + + + + The key-typed version is the same as , except the metadata + is based off a subset of the key values metadata. + + + + + Collection of extension methods for to create instances of data conversion and mapping transformer components. + + + + + Create a , which hashes the data from the column specified in + to a new column: . + + The conversion transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of keys, or a scalar of key based on whether the input column data types + are vectors or scalars. + Name of the column whose data will be hashed. + If set to , the value of the will be used as source. + This estimator operates over vectors or scalars of text, numeric, boolean, key or data types. + Number of bits to hash into. Must be between 1 and 31, inclusive. + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column.Hashing, as such, can map many initial values to one. + Specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + + + + + Create a , which hashes the input column's data type + to a new column: . + + This transform can operate over several columns. + The transform's catalog. + Advanced options for the estimator that also contain the input and output column names. + This estimator operates over text, numeric, boolean, key and data types. + The new column's data type will be a vector of , or a based on whether the input column data types + are vectors or scalars. + + + + + + + + Create a , which converts the type of the data to the type specified in . + + The conversion transform's catalog. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + This transform operates over numeric, boolean, text, and key data types. + The expected kind of the output column. + + + + + + + + Create a , which converts the type of the data to the type specified in . + + This transform can operate over several columns. + The conversion transform's catalog. + The input and output columns. + This transform operates over numeric, boolean, text, and key data types. + The expected kind of the output column. + + + + + + + + Create a , which converts the type of the data in the + to the type specified in the + + This transform can operate over several columns. + The conversion transform's catalog. + The input and output columns. + This transform operates over numeric, boolean, text, and keys. + + + + Create a , which converts the key types back to their original values. + + This transform often is in the pipeline after one of the overloads of + + The conversion transform's catalog. + Name of the column resulting from the transformation of . + Its type will be the original value's type. + Name of the column to transform. If set to , the value of the will be used as source. + This transform operates over keys. + + + + + + + + + Create a , which converts the key types back to their original values. + + This transform can operate over several columns. + This transform often is in the pipeline after one of the overloads of + + The conversion transform's catalog. + The input and output columns. + This transform operates over keys. + The new column's data type will be the original value's type. + + + + + + + + + Create a , which maps the value of a key into a floating point vector representing the value. + + This transform can operate over several columns. + The conversion transform's catalog. + The input and output columns. + + + + Create a , which maps the value of a key into a floating point vector representing the value. + + The conversion transform's catalog. + Name of the column resulting from the transformation of . + The data type is a vector of representing the input value. + Name of the column to transform. If set to , the value of the will be used as source. + This transform operates over keys. + Whether to combine multiple indicator vectors into a single vector of counts instead of concatenating them. + This is only relevant when the input column is a vector of keys. + + + + + + + + Create a , which maps the value of a key into a floating point vector representing the value. + + This transform can operate over several columns of keys. + The conversion transform's catalog. + The input and output columns. + The new column's data type is a vector of representing the original value. + Whether to combine multiple indicator vectors into a single vector of counts instead of concatenating them. + This is only relevant when the input column is a vector of keys. + + + + + + + + Create a , which converts categorical values into numerical keys. + + The conversion transform's catalog. + Name of the column containing the keys. + Name of the column containing the categorical values. If set to , the value of the is used. + The input data types can be numeric, text, boolean, or . + + Maximum number of keys to keep per column when training. + The order in which keys are assigned. + If set to , keys are assigned in the order encountered. + If set to , values are sorted, and keys are assigned based on the sort order. + If set to true, use text type + for values, regardless of the actual input type. When doing the reverse + mapping, the values are text rather than the original input type. + Use a pre-defined mapping between values and keys, instead of building + the mapping from the input data during training. If specified, this should be a single column containing the values. + The keys are allocated based on the value of keyOrdinality. + + + + + + + + + Create a , which converts categorical values into keys. + + This transform can operate over multiple pairs of columns, creating a mapping for each pair. + The conversion transform's catalog. + The input and output columns. + The input data types can be numeric, text, boolean, or . + + Maximum number of keys to keep per column when training. + The order in which keys are assigned. + If set to , keys are assigned in the order encountered. + If set to , values are sorted, and keys are assigned based on the sort order. + If set to true, use text type + for values, regardless of the actual input type. When doing the reverse + mapping, the values are text rather than the original input type. + Use a pre-defined mapping between values and keys, instead of building + the mapping from the input data during training. If specified, this should be a single column containing the values. + The keys are allocated based on the value of keyOrdinality. + + + + + + + + + Create a , which converts value types into keys, optionally loading the keys to use from . + + This transform can operate over several columns. + The conversion transform's catalog. + The input and output columns. + The input data types can be numeric, text, boolean, or . + + The data view containing the terms. If specified, this should be a single column data + view, and the key-values will be taken from that column. If unspecified, the key-values will be determined + from the input data upon fitting. + + + + Create a , which converts value types into keys, loading the keys to use from . + + The key type. + The value type. + The conversion transform's catalog + Name of the column resulting from the transformation of . + The output data types can be primitives or vectors of numeric, text, boolean, , or types. + Specifies the mapping that will be performed. The keys will be mapped to the values as specified in the . + Name of the column to transform. + If set to , the value of the will be used as source. + The input data types can be primitives or vectors of numeric, text, boolean, , or types. + + Whether to treat the values as a key. + An instance of the + + + + + + + + Create a , which converts value types into keys, loading the keys to use from . + + This transform can operate over several columns. + The key type. + The value type. + The conversion transform's catalog + Specifies the mapping that will be performed. The keys will be mapped to the values as specified in the . + The input and output columns. + The data types can be primitives or vectors of numeric, text, boolean, , or types. + + + + + Create a , which converts value types into keys, loading the keys to use from . + + This transform can operate over several columns. + The key type. + The value type. + The conversion transform's catalog + Specifies the mapping that will be performed. The keys will be mapped to the values as specified in the . + Whether to treat the values as a keys. + The input and output columns. + The data types can be primitives or vectors of numeric, text, boolean, , or types. + + + + + Create a , which converts value types into keys, loading the keys to use from . + + The key type. + The value type. + The conversion transform's catalog + Name of the column resulting from the transformation of . + The data types can be primitives or vectors of numeric, text, boolean, , or types, + as specified in the . + Specifies the mapping that will be performed. The keys will be mapped to the values as specified in the . + Name of the column to transform. If set to , the value of the will be used as source. + The data types can be primitives or vectors of numeric, text, boolean, , or types, + as specified in the . + + + + + + + + Create a , which converts value types into keys, loading the keys to use from . + + This transform can operate over several columns. + The key type. + The value type. + The conversion transform's catalog + Specifies the mapping that will be performed. The keys will be mapped to the values as specified in the . + The input and output columns. The data types can be primitives or vectors of numeric, text, boolean, , + or types, as specified in the and . + + + + Create a , which converts value types into keys, loading the keys to use from the where the + specifies the keys, and the the respective value. + + The conversion transform's catalog + Name of the column resulting from the transformation of . + The data types can be primitives or vectors of numeric, text, boolean, , + or types. + An instance of that contains the and columns. + The key column in . + The value column in . + Name of the column to transform. If set to , the value of the will be used as source. + The data types can be primitives or vectors of numeric, text, boolean, , + or types. + + + + + + + + Create a , which converts value types into keys, + loading the keys to use from the where the + specifies the keys, and the the respective value. + + This transform can operate over several columns. + The conversion transform's catalog + An instance of that contains the and columns. + The key column in . + The value column in . + The input and output columns. + + + + Collection of extension methods for to create instances of model explainability components. + + + + + Create a that computes model-specific contribution scores for + each feature of the input vector. + + The transforms catalog. + A that supports Feature Contribution Calculation, + and which will also be used for scoring. + The number of positive contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with positive contributions than , the rest will be returned as zeros. + The number of negative contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with negative contributions than , the rest will be returned as zeros. + Whether the feature contributions should be normalized to the [-1, 1] interval. + + + + + + + + + Create a that computes model-specific contribution scores for + each feature of the input vector. Supports calibrated models. + + The transforms catalog. + A that supports Feature Contribution Calculation, + and which will also be used for scoring. + The number of positive contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with positive contributions than , the rest will be returned as zeros. + The number of negative contributions to report, sorted from highest magnitude to lowest magnitude. + Note that if there are fewer features with negative contributions than , the rest will be returned as zeros. + Whether the feature contributions should be normalized to the [-1, 1] interval. + + + + + + + + + Specifies input and output column names for transformer components that operate on multiple columns. + + + It is often advantageous to transform several columns at once as all of the changes can be done in a + single data pass. + + + + + Name of the column to transform. If set to , the value of the will be used as source. + + + + + Name of the column resulting from the transformation of . + + + + + Specifies input and output column names for a transformation. + + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + + + + Collection of extension methods for to create instances of transform components + that manipulate columns. + + + + + Create a , which copies the data from the column specified in + to a new column: . + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be the same as that of the input column. + Name of the column to copy the data from. + This estimator operates over any data type. + + + + + + + + + Create a , which copies the data from the column specified in + to a new column: . + + This transform can operate over several columns. + The transform's catalog. + The pairs of input and output columns. This estimator operates over any data type. + + + + + + + + + Create a , which concatenates one or more input columns into a new output column. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of the input columns' data type. + Name of the columns to concatenate. + This estimator operates over any data type except key type. + If more that one column is provided, they must all have the same data type. + + + + + + + + + Create a , which drops a given list of columns from an . Any column not specified will + be maintained in the output. + + The transform's catalog. + The array of column names to drop. + This estimator operates over columns of any data type. + + + + + + + + + Create a , which keeps a given list of columns in an and drops the others. + + The transform's catalog. + The array of column names to keep. + If will keep hidden columns and will remove hidden columns. + Keeping hidden columns, instead of dropping them, is recommended when it is necessary to understand how the inputs of a pipeline + map to outputs of the pipeline, for debugging purposes. + + + + + + + + + Create a , which keeps a given list of columns in an and drops the others. + + The transform's catalog. + The array of column names to keep. + + + + + + + + + Class used by to create instances of transform components. + + + + + The list of operations over categorical data. + + + + + The list of operations for data type conversion. + + + + + The list of operations for processing text data. + + + + + The list of operations for selecting features based on some criteria. + + + + + Class used by to create instances of categorical data transform components. + + + + + Class used by to create instances of type conversion data transform components. + + + + + Class used by to create instances of text data transform components. + + + + + Class used by to create instances of feature selection transform components. + + + + + Each of the specialized 'peek' methods copies the appropriate field value of an instance of T + into the provided buffer. So, the call is 'peek(userObject, ref destination)' and the logic is + indentical to 'destination = userObject.##FIELD##', where ##FIELD## is defined per peek method. + + + + + Each of the specialized 'poke' methods sets the appropriate field value of an instance of T + to the provided value. So, the call is 'peek(userObject, providedValue)' and the logic is + identical to 'userObject.##FIELD## = providedValue', where ##FIELD## is defined per poke method. + + + + diff --git a/W/Debug_Folder/Microsoft.ML.DataView.dll b/W/Debug_Folder/Microsoft.ML.DataView.dll new file mode 100644 index 000000000..7ab1ab1e1 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.DataView.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.DataView.xml b/W/Debug_Folder/Microsoft.ML.DataView.xml new file mode 100644 index 000000000..d5b8fae8b --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.DataView.xml @@ -0,0 +1,1156 @@ + + + + Microsoft.ML.DataView + + + + + Akin to FindIndexSorted, except stores the found index in the output + index parameter, and returns whether that index is a valid index + pointing to a value equal to the input parameter value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + Assumes input is sorted and finds value using BinarySearch. + If value is not found, returns the logical index of 'value' in the sorted list i.e index of the first element greater than value. + In case of duplicates it returns the index of the first one. + It guarantees that items before the returned index are < value, while those at and after the returned index are >= value. + + + + + A structure serving as the identifier of a row of . + For datasets with millions of records, those IDs need to be unique, therefore the need for such a large structure to hold the values. + Those Ids are derived from other Ids of the previous components of the pipelines, and dividing the structure in two: high order and low order of bits, + and reduces the changes of those collisions even further. + + + + + The low order bits. Corresponds to H1 in the Murmur algorithms. + + + The high order bits. Corresponds to H2 in the Murmur algorithms. + + + + Initializes a new instance of + + The low order ulong. + The high order ulong. + + + + An operation that treats the value as an unmixed Murmur3 128-bit hash state, + and returns the hash state that would result if we hashed an addition 16 bytes + that were all zeros, except for the last bit which is one. + + + + + An operation that treats the value as an unmixed Murmur3 128-bit hash state, + and returns the hash state that would result if we hashed an addition 16 bytes + that were all zeros. + + + + + An operation that treats the value as an unmixed Murmur3 128-bit hash state, + and returns the hash state that would result if we took , + scrambled it using , then hashed the result of that. + + + + + + + This is the abstract base class for all types in the type system. + + + Those that wish to extend the type system should derive from one of + the more specific abstract classes or . + + + + + Constructor for extension types, which must be either or . + + + + + The raw for this . Note that this is the raw representation type + and not the complete information content of the . + + + Code should not assume that a uniquely identifiers a . + For example, most practical instances of ML.NET's KeyType and will have a + of , but both are very different in the types of information conveyed in that number. + + + + + Return if is equivalent to and otherwise. + + Another to be compared with . + + + + The abstract base class for all non-primitive types. + + + This class stands in constrast to . As that class is defined + to encapsulate cases where instances of the representation type can be freely copied without concerns + about ownership, mutability, or dispoal, this is defined for those types where these factors become concerns. + + To take the most conspicuous example, is a structure type, + which through the buffer sharing mechanisms of its representation type, + does not have assignment as sufficient to create an independent copy. + + + + + The abstract base class for all primitive types. Values of these types can be freely copied + without concern for ownership, mutation, or disposing. + + + + + The standard text type. This has representation type of with type parameter . + Note this can have only one possible value, accessible by the singleton static property . + + + + + The singleton instance of this type. + + + + + The standard number type. This class is not directly instantiable. All allowed instances of this + type are singletons, and are accessible as static properties on this class. + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The singleton instance of the with representation type of . + + + + + The type. This has representation type of . + Note this can have only one possible value, accessible by the singleton static property . + + + + + The singleton instance of this type. + + + + + The standard boolean type. This has representation type of . + Note this can have only one possible value, accessible by the singleton static property . + + + + + The singleton instance of this type. + + + + + The standard date time type. This has representation type of . + Note this can have only one possible value, accessible by the singleton static property . + + + + + The singleton instance of this type. + + + + + The standard date time offset type. This has representation type of . + Note this can have only one possible value, accessible by the singleton static property . + + + + + The singleton instance of this type. + + + + + The standard timespan type. This has representation type of . + Note this can have only one possible value, accessible by the singleton static property . + + + + + The singleton instance of this type. + + + + + should be used to decorated class properties and fields, if that class' instances will be loaded as ML.NET . + The function will be called to register a for a with its s. + Whenever a value typed to the registered and its s, that value's type (i.e., a ) + in would be the associated . + + + + + A function implicitly invoked by ML.NET when processing a custom type. It binds a DataViewType to a custom type plus its attributes. + + + + + Return if is equivalent to and otherwise. + + Another to be compared with . + + + + Type representing categorical or enumerated values, most commonly used for + the values of labels in multiclass classification models. + + + The underlying .NET type is one of the unsigned integer types. The default is + , but it can also be , + , or . + Despite keys being numerical types, the information is not inherently numeric, + so typically, arithmetic is not meaningful. + + Missing values are mapped to 0. + + The first non-missing value of the set is always 1. + + The other values range up to the value of . + + For example, if you have a key value with a of 3, then + the value 0 corresponds to missing key values, and + one of the values of 1, 2, or 3 is of the valid values, + and no other values are used. + + + + + Initializes a new instance of the class. + + + The underlying representation type. Should be one of , , + (the most common choice), or . + + + The cardinality of the underlying set. This must not exceed the associated maximum value of the + representation type. For example, if is , then this must not + exceed . + + + + + Initializes a new instance of the class. This differs from the hypothetically more general + constructor by taking an for + , to more naturally facilitate the most common case that the key value is being used + as an enumeration over an array or list of some form. + + + The underlying representation type. Should be one of , , + (the most common choice), or . + + + The cardinality of the underlying set. This must not exceed the associated maximum value of the + representation type. For example, if is , then this must not + exceed . + + + + + Returns true iff the given type is valid for a . The valid ones are + , , , and , that is, the unsigned + integer types. + + + + + is the cardinality of the . + + + The typical legal values for data of this type ranges from the missing value of 0, and non-missing + values ranging from to 1 through , inclusive, being the enumeration into whatever + set the key values are enumerated over. + + + + + Determine if this object is equal to another instance. + Checks if the other item is the type of , if the + is the same, and if the is the same. + + The other object to compare against. + if both objects are equal, otherwise . + + + + Determine if a instance is equal to another instance. + Checks if any object is the type of , if the + is the same, and if the is the same. + + The other object to compare against. + if both objects are equal, otherwise . + + + + Retrieves the hash code. + + An integer representing the hash code. + + + + The string representation of the . + + A formatted string. + + + + A buffer that supports both dense and sparse representations. This is the representation type for all + instances. The explicitly defined values of this vector are exposed through + and, if not dense, . + + + This structure is by itself immutable, but to enable buffer editing including re-use of the internal buffers, + a mutable variant can be accessed through . + + Throughout the code, we make the assumption that a sparse is logically equivalent to + a dense with the default value for filling in the default values. + + The type of the vector. There are no compile-time restrictions on what this could be, but + this code and practically all code that uses makes the assumption that an assignment of + a value is sufficient to make a completely independent copy of it. So, for example, this means that a buffer of + buffers is not possible. But, things like , , and , are totally fine. + + + + The internal re-usable array of values. + + + + + The internal re-usable array of indices. + + + + + The number of items explicitly represented. This equals when the representation + is dense and less than when sparse. + + + + + The logical length of the buffer. + + + Note that if this vector , then this will be the same as the + as returned from , since all values are explicitly represented in a dense representation. If + this is a sparse representation, then that will be somewhat shorter, as this + field contains the number of both explicit and implicit entries. + + + + + The explicitly represented values. When this , the + of the returned value will equal , and otherwise will have length less than + . + + + + + The indices. For a dense representation, this array is not used, and will return the default "empty" span. + For a sparse representation it is parallel to that returned from and specifies the + logical indices for the corresponding values, in increasing order, between 0 inclusive and + exclusive, corresponding to all explicitly defined values. All values at unspecified + indices should be treated as being implicitly defined with the default value of . + + + To give one example, if returns [3, 5] and () produces [98, 76], + this stands for a vector with non-zero values 98 and 76 respectively at the 4th and 6th + coordinates, and zeros at all other indices. (Zero, because that is the default value for all .NET numeric + types.) + + + + + Gets a value indicating whether every logical element is explicitly represented in the buffer. + + + + + Construct a dense representation. The array is often unspecified, but if + specified it should be considered a buffer to be held on to, to be possibly used. + + The logical length of the resulting instance. + + The values to be used. This must be at least as long as . If + is 0, it is legal for this to be . The constructed buffer + takes ownership of this array. + + + The internal indices buffer. Because this constructor is for dense representations + this will not be immediately useful, but it does provide a buffer to be potentially reused to avoid + allocation. This is mostly non-null in situations where you want to produce a dense + , but you happen to have an indices array "left over" and you don't want to + needlessly lose. + + + The resulting structure takes ownership of the passed in arrays, so they should not be used for + other purposes in the future. + + + + + Construct a possibly sparse vector representation. + + The length of the constructed buffer. + The count of explicit entries. This must be between 0 and , both + inclusive. If it equals the result is a dense vector, and if less this will be a + sparse vector. + + The values to be used. This must be at least as long as . If + is 0, it is legal for this to be . + + The indices to be used. If we are constructing a dense representation, or + is 0, this can be . Otherwise, this must be at least as long + as . + The resulting structure takes ownership of the passed in arrays, so they should not be used for + other purposes in the future. + + + + Copy from this buffer to the given destination, forcing a dense representation. + + The destination buffer. After the copy, this will have + of . + + + + Copy from this buffer to the given destination. + + The destination buffer. After the copy, this will have + of . + + + + Copy a range of values from this buffer to the given destination. + + The destination buffer. After the copy, this will have + of . + The minimum inclusive index to start copying from this vector. + The logical number of values to copy from this vector into . + + + + Copy from this buffer to the given destination span. This "densifies." + + The destination buffer. This must have least . + + + + Copy from this buffer to the given destination span, starting at the specified index. This "densifies." + + The destination buffer. This must be at least + plus . + The starting index of at which to start copying. + The value to fill in for the implicit sparse entries. This is a potential exception to + general expectation of sparse that the implicit sparse entries have the default value + of . + + + + Copy from a section of a source array to the given destination. + + + + + Returns the joint list of all index/value pairs. + + + If all pairs, even those implicit values of a sparse representation, + will be returned, with the implicit values having the default value, as is appropriate. If left + then only explicitly defined values are returned. + + The index/value pairs. + + + + Returns an enumerable with items, representing the values. + + + + + Gets the item stored in this structure. In the case of a dense vector this is a simple lookup. + In the case of a sparse vector, it will try to find the entry with that index, and set + to that stored value, or if no such value was found, assign it the default value. + + + In the case where is , this will take constant time since it an + directly lookup. For sparse vectors, however, because it must perform a bisection search on the indices to + find the appropriate value, that takes logarithmic time with respect to the number of explicitly represented + items, which is to say, the of the return value of . + + For that reason, a single completely isolated lookup, since constructing as + does is not a free operation, it may be more efficient to use this method. However + if one is doing a more involved computation involving many operations, it may be faster to utilize + and, if appropriate, directly. + + The index, which must be a non-negative number less than . + The value stored at that index, or if this is a sparse vector where this is an implicit + entry, the default value for . + + + + A variant of that returns the value instead of passing it + back using a reference parameter. + + The index, which must be a non-negative number less than . + The value stored at that index, or if this is a sparse vector where this is an implicit + entry, the default value for . + + + + A helper method that gives us an iterable over the items given the fields from a . + Note that we have this in a separate utility class, rather than in its more natural location of + itself, due to a bug in the C++/CLI compiler. (DevDiv 1097919: + [C++/CLI] Nested generic types are not correctly imported from metadata). So, if we want to use + in C++/CLI projects, we cannot have a generic struct with a nested class + that has the outer struct type as a field. + + + + + Various methods for creating instances. + + + + + Creates a with the same shape + (length and density) as the . + + The destination buffer. Note that the resulting is assumed to take ownership + of this passed in object, and so whatever was passed in as this parameter should not be used again, since its + underlying buffers are being potentially reused. + + + + Creates a using + 's values and indices buffers. + + + The destination buffer. Note that the resulting is assumed to take ownership + of this passed in object, and so whatever was passed in as this parameter should not be used again, since its + underlying buffers are being potentially reused. + + + The logical length of the new buffer being edited. + + + The optional number of physical values to be represented in the buffer. + The buffer will be dense if is omitted. + + + The optional number of maximum physical values to represent in the buffer. + The buffer won't grow beyond this maximum size. + + + True means that the old buffer values and indices are preserved, if possible (Array.Resize is called). + False means that a new array will be allocated, if necessary. + + + True means to ensure the Indices buffer is available, even if the buffer will be dense. + + + + + An object capable of editing a by filling out + (and if the buffer is not dense). + + + The structure by itself is immutable. However, the purpose of + is to enable buffer re-use we can edit them through this structure, as created through + or + . + + + + + The mutable span of values. + + + + + The mutable span of indices. + + + + + Gets a value indicating whether a new array was allocated. + + + + + Gets a value indicating whether a new array was allocated. + + + + + Commits the edits and creates a new using the current and . + Note that this structure and its properties should not be used once this is called. + + The newly created . + + + + Commits the edits and creates a new using + the current Values and Indices, while allowing to truncate the length + of and, if sparse, . + Like , this structure and its properties should not be used once this is called. + + + The new number of physical values to be represented in the created buffer. + + + The newly created . + + + This method allows to modify the length of the explicitly defined values. + This is useful in sparse situations where the + was created with a larger physical value count than was needed + because the final value count was not known at creation time. + + + + + The standard vector type. The representation type of this is , + where the type parameter is in . + + + + + The dimensions. This will always have at least one item. All values will be non-negative. + As with , a zero value indicates that the vector type is considered to have + unknown length along that dimension. + + + In the case where this is a multi-dimensional type, that is, a situation where + has length greater than one, since itself is a single dimensional structure, + we must clarify what we mean. The indices represent a "flattened" view of the coordinates implicit in the + dimensions. We consider that the last dimension is the most "minor" index. In the case where + has length 2, this is commonly referred to as row-major order. So, if you hypothetically had + dimensions of { 5, 2 }, then the values would be all of length 10, + and the flattened indices 0, 1, 2, 3, 4, ... would correspond to "coordinates" of + (0, 0), (0, 1), (1, 0), (1, 1), (2, 0), ..., respectively. + + + + + Constructs a new single-dimensional vector type. + + The type of the items contained in the vector. + The size of the single dimension. + + + + Constructs a potentially multi-dimensional vector type. + + The type of the items contained in the vector. + The dimensions. Note that, like , must be non-empty, with all + non-negative values. Also, because is the product of , the result of + multiplying all these values together must not overflow . + + + + Constructs a potentially multi-dimensional vector type. + + The type of the items contained in the vector. + The dimensions. Note that, like , must be non-empty, with all + non-negative values. Also, because is the product of , the result of + multiplying all these values together must not overflow . + + + + Whether this is a vector type with known size. + Equivalent to > 0. + + + + + The type of the items stored as values in vectors of this type. + + + + + The size of the vector. A value of zero means it is a vector whose size is unknown. + A vector whose size is known should correspond to values that always have the same , + whereas one whose size is unknown may have values whose varies from record to record. + Note that this is always the product of the elements in . + + + + + Represents the schema of an or an . + The schema is a collection of . + + + + + Number of columns in the schema. + + + + + Get the column by name. Throws an exception if such column does not exist. + Note that if multiple columns exist with the same name, the one with the biggest index is returned. + The other columns are considered 'hidden', and only accessible by their index. + + + + + Get the column by index. + + + + + Get the column by name, or null if the column is not present. + + + + + This class describes one column in the particular schema. + + + + + The name of the column. + + + + + The column's index in the schema. + + + + + Whether this column is hidden (accessible only by index). + + + + + The type of the column. + + + + + The annotations of the column. + + + + + This class represents the schema of one column of a data view, without an attachment to a particular . + + + + + The name of the column. + + + + + The type of the column. + + + + + The annotations associated with the column. + + + + + Creates an instance of a . + + + + + Create an instance of from an existing schema's column. + + + + + The schema annotations of one . + + + + + Annotation getter delegates. Useful to construct annotations out of other annotations. + + + + + The schema of the annotations row. It is different from the schema that the column belongs to. + + + + + Create an annotations row by supplying the schema columns and the getter delegates for all the values. + + + Note: The array is owned by this instance. + + + + + Get a getter delegate for one value of the annotations row. + + + + + Get the value of an annotation, by annotation kind (aka column name). + + + + + Class containing operations to build an . + + + + + Add some columns from into our new annotations, by applying + to all the names. + + The annotations row to take values from. + The predicate describing which annotation columns to keep. + + + + Add one annotation column, strongly-typed version. + + The type of the value. + The annotation name. + The annotation type. + The getter delegate. + Annotations of the input column. Note that annotations on an annotation column is somewhat rare + except for certain types (for example, slot names for a vector, key values for something of key type). + + + + Add one annotation column, weakly-typed version. + + The annotation name. + The annotation type. + The getter delegate that provides the value. Note that the type of the getter is still checked + inside this method. + Annotations of the input column. Note that annotations on an annotation column is somewhat rare + except for certain types (for example, slot names for a vector, key values for something of key type). + + + + Add one annotation column for a primitive value type. + + The annotation name. + The annotation type. + The value of the annotation. + Annotations of the input column. Note that annotations on an annotation column is somewhat rare + except for certain types (for example, slot names for a vector, key values for something of key type). + + + + Returns a row that contains the current contents of this . + + + + + Class containing operations to build a . + + + + + Create a new instance of . + + + + + Add one column to the schema being built. + + The column name. + The column type. + The column annotations. + + + + Add multiple existing columns to the schema being built. + + Columns to add. + + + + Add multiple existing columns to the schema being built. + + Columns to add. + + + + Returns a that contains the current contents of this . + + + + + This constructor should only be called by . + + The input columns. The constructed instance takes ownership of the array. + + + + The input and output of Query Operators (Transforms). This is the fundamental data pipeline + type, comparable to for LINQ. + + + + + + + + + + Whether this IDataView supports shuffling of rows, to any degree. + + + + + Returns the number of rows if known. Returning null means that the row count is unknown but + it might return a non-null value on a subsequent call. This indicates, that the transform does + not YET know the number of rows, but may in the future. Its implementation's computation + complexity should be O(1). + + Most implementation will return the same answer every time. Some, like a cache, might + return null until the cache is fully populated. + + + + + Get a row cursor. The indicate the active columns that are needed + to iterate over. If set to an empty no column is requested. The schema of the returned + cursor will be the same as the schema of the IDataView, but getting a getter for inactive columns will throw. + + The active columns needed. If passed an empty no column is requested. + An instance of to seed randomizing the access for a shuffled cursor. + + + + This constructs a set of parallel batch cursors. The value is a recommended limit on + cardinality. If is non-positive, this indicates that the caller has no recommendation, + and the implementation should have some default behavior to cover this case. Note that this is strictly a + recommendation: it is entirely possible that an implementation can return a different number of cursors. + + The cursors should return the same data as returned through + , except partitioned: no two cursors should return the + "same" row as would have been returned through the regular serial cursor, but all rows should be returned by + exactly one of the cursors returned from this cursor. The cursors can have their values reconciled + downstream through the use of the property. + + The typical usage pattern is that a set of cursors is requested, each of them is then given to a set of + working threads that consume from them independently while, ultimately, the results are finally collated in + the end by exploiting the ordering of the property described above. More typical + scenarios will be content with pulling from the single serial cursor of + . + + The active columns needed. If passed an empty no column is requested. + The suggested degree of parallelism. + An instance of to seed randomizing the access. + + + + + Gets an instance of Schema. + + + + + Delegate type to get a value. This can be used for efficient access to data in a + or . + + + + + A logical row of data. May be a row of an or a stand-alone row. + + + + + This is incremented when the underlying contents changes, giving clients a way to detect change. It should be + -1 when the object is in a state where values cannot be fetched. In particular, for an , + this will be before if ever called for the first time, or after the first time + is called and returns . + + Note that this position is not position within the underlying data, but position of this cursor only. If + one, for example, opened a set of parallel streaming cursors, or a shuffled cursor, each such cursor's first + valid entry would always have position 0. + + + + + This provides a means for reconciling multiple rows that have been produced generally from + . When getting a set, there is a need + to, while allowing parallel processing to proceed, always have an aim that the original order should be + recoverable. Note, whether or not a user cares about that original order in one's specific application is + another story altogether (most callers of this as a practical matter do not, otherwise they would not call + it), but at least in principle it should be possible to reconstruct the original order one would get from an + identically configured . So: for any cursor + implementation, batch numbers should be non-decreasing. Furthermore, any given batch number should only + appear in one of the cursors as returned by + . In this way, order is determined by + batch number. An operation that reconciles these cursors to produce a consistent single cursoring, could do + so by drawing from the single cursor, among all cursors in the set, that has the smallest batch number + available. + + Note that there is no suggestion that the batches for a particular entry will be consistent from cursoring + to cursoring, except for the consistency in resulting in the same overall ordering. The same entry could + have different batch numbers from one cursoring to another. There is also no requirement that any given + batch number must appear, at all. It is merely a mechanism for recovering ordering from a possibly arbitrary + partitioning of the data. It also follows from this, of course, that considering the batch to be a property + of the data is completely invalid. + + + + + A getter for a 128-bit ID value. It is common for objects to serve multiple + instances to iterate over what is supposed to be the same data, for example, in a + a cursor set will produce the same data as a serial cursor, just partitioned, and a shuffled cursor will + produce the same data as a serial cursor or any other shuffled cursor, only shuffled. The ID exists for + applications that need to reconcile which entry is actually which. Ideally this ID should be unique, but for + practical reasons, it suffices if collisions are simply extremely improbable. + + Note that this ID, while it must be consistent for multiple streams according to the semantics above, is not + considered part of the data per se. So, to take the example of a data view specifically, a single data view + must render consistent IDs across all cursorings, but there is no suggestion at all that if the "same" data + were presented in a different data view (as by, say, being transformed, cached, saved, or whatever), that + the IDs between the two different data views would have any discernible relationship. + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of the given , from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Gets a , which provides name and type information for variables + (i.e., columns in ML.NET's type system) stored in this row. + + + + + Implementation of dispose. Calls with . + + + + + The disposable method for the disposable pattern. This default implementation does nothing. + + Whether this was called from . + Subclasses that implement should call this method with + , but I hasten to add that implementing finalizers should be + avoided if at all possible.. + + + + Class used to cursor through rows of an . + + + Note that this is also an . The is + incremented by . Prior to the first call to , or after + returns , is -1. + Otherwise, when returns , >= 0. + + + + + Advance to the next row. When the cursor is first created, this method should be called to + move to the first row. Returns if there are no more rows. + + + + + The debugger proxy for . + + + + + The debugger proxy for . + + + + diff --git a/W/Debug_Folder/Microsoft.ML.KMeansClustering.dll b/W/Debug_Folder/Microsoft.ML.KMeansClustering.dll new file mode 100644 index 000000000..cda166158 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.KMeansClustering.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.KMeansClustering.xml b/W/Debug_Folder/Microsoft.ML.KMeansClustering.xml new file mode 100644 index 000000000..1f5d34ecf --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.KMeansClustering.xml @@ -0,0 +1,383 @@ + + + + Microsoft.ML.KMeansClustering + + + + + Collection of extension methods for the to create + instances of KMeans trainers. + + + + + Train a KMeans++ clustering algorithm using . + + The clustering catalog trainer object. + The name of the feature column. + The name of the example weight column (optional). + The number of clusters to use for KMeans. + + + + + + + + Train a KMeans++ clustering algorithm using . + + The clustering catalog trainer object. + Algorithm advanced options. + + + + + + + + + + + + + + Version information to be saved in binary format + + + + + Initialize predictor with a trained model. + + The host environment + Number of centroids + Coordinates of the centroids + If true then the vectors will be subject to + a deep copy, if false then this constructor will take ownership of the passed in centroid vectors. + If false then the caller must take care to not use or modify the input vectors once this object + is constructed, and should probably remove all references. + + + + Initialize predictor from a binary file. + + The load context + The host environment + + + + Save the predictor in binary format. + + The context to save to + + + + This method is called by reflection to instantiate a predictor. + + + + + Initialize internal parameters: L2 norms of the _centroids. + + + + + Copies the centroids to a set of provided buffers. + + The buffer to which to copy. Will be extended to + an appropriate length, if necessary. + The number of clusters, corresponding to the logical size of + . + + + + The for training a KMeans clusterer + + + + + + + + + The number of clusters. + + + + Options for the as used in [KMeansTrainer(Options)](xref:Microsoft.ML.KMeansClusteringExtensions.KMeans(Microsoft.ML.ClusteringCatalog.ClusteringTrainers,Microsoft.ML.Trainers.KMeansTrainer.Options)). + + + + + The number of clusters. + + + + + Cluster initialization algorithm. + + + + + Tolerance parameter for trainer convergence. Low = slower, more accurate. + + + + + Maximum number of iterations. + + + + + Memory budget (in MBs) to use for KMeans acceleration. + + + + + Degree of lock-free parallelism. Defaults to automatic. Determinism not guaranteed. + + + + + Initializes a new instance of + + The to use. + The advanced options of the algorithm. + + + + Initialize starting centroids via KMeans++ algorithm. This algorithm will always run single-threaded, + regardless of the value of . + + + + + An instance of this class is used by SharedStates in YinYangTrainer + and KMeansBarBarInitialization. It effectively bounds MaxInstancesToAccelerate and + initializes RowIndexGetter. + + + + + Initializes the parallel index lookup HashArray using a sequential RowCursor. We + preinitialize the HashArray so we can perform lock-free lookup operations during + the primary KMeans pass. + + + + + Data for optimizing KMeans|| initialization. Very similar to SharedState class + For every instance, there is a space for the best weight and best cluster computed. + + In this class, new clusters mean the clusters that were added to the cluster set + in the previous round of KMeans|| and old clusters are the rest of them (the ones + that were added in the rounds before the previous one). + + In every round of KMeans||, numSamplesPerRound new clusters are added to the set of clusters. + There are 'numRounds' number of rounds. We compute and store the distance of each new + cluster from every round to all of the previous clusters and use it + to avoid unnecessary computation by applying the triangle inequality. + + + + + When assigning an accelerated row to a cluster, we store away the weight + to its closest cluster, as well as the identity of the new + closest cluster. Note that bestWeight can be negative since it is + corresponding to the weight of a distance which does not have + the L2 norm of the point itself. + + + + + Computes and stores the distance of a new cluster to an old cluster + must be between 0..numSamplesPerRound-1. + + + + + This function is the key to use triangle inequality. Given an instance x distance to the best + old cluster, cOld, and distance of a new cluster, cNew, to cOld, this function evaluates whether + the distance computation of dist(x,cNew) can be avoided. + + + + + This function finds the best cluster and the best weight for an instance using + smart triangle inequality to avoid unnecessary weight computations. + + Note that is used to avoid the storing the new cluster in + final round. After the final round, best cluster information will be ignored. + + + + + This method computes the memory requirement for _clusterDistances in SharedState (clusterBytes) and + the maximum number of instances whose weight to the closest cluster can be memorized in order to avoid + recomputation later. + + + + + KMeans|| Implementation, see https://theory.stanford.edu/~sergei/papers/vldb12-kmpar.pdf + This algorithm will require: + - (k * overSampleFactor * rounds * dimensionality * 4) bytes for the final sampled clusters. + - (k * overSampleFactor * numThreads * dimensionality * 4) bytes for the per-round sampling. + + Uses memory in initializationState to cache distances and avoids unnecessary distance computations + akin to YinYang-KMeans paper. + + Everywhere in this function, weight of an instance x from a cluster c means weight(x,c) = dist(x,c)^2-norm(x)^2. + We store weight in most cases to avoid unnecessary computation of norm(x). + + + + + Initialize starting centroids via reservoir sampling. + + + + + Reduces the array of work chunks into this chunk, coalescing the + results from multiple worker threads partitioned over a parallel cursor set and + clearing their values to prepare them for the next iteration. + + + + + Updates all the passed in variables with the results of the most recent iteration + of cluster assignment. It is assumed that centroids will contain the previous results + of this call. + + + + + When assigning an accelerated row to a cluster, we store away the distance + to its closer and second closed cluster, as well as the identity of the new + closest cluster. This method returns the last known closest cluster. + + + + + Updates the known YinYang bounds for the given row using the centroid position + deltas from the previous iteration. + + + + + Determines if the triangle distance inequality still applies to the given row, + allowing us to avoid per-cluster distance computation. + + + + + Performs the 'update' step of KMeans. This method is passed a WorkChunkState. In the parallel version + this chunk will be one of _numThreads chunks and the RowCursor will be part of a RowCursorSet. In the + unthreaded version, this chunk will be the final chunk and hold state for the entire data set. + + + + + Performs a multithreaded version of weighted reservoir sampling, returning + an array of numSamples, where each sample has been selected from the + data set with a probability of numSamples/N * weight/(sum(weight)). Buffer + is sized to the number of threads plus one and stores the minheaps needed to + perform the per-thread reservoir samples. + + This method assumes that the numSamples is much smaller than the full dataset as + it expects to be able to sample numSamples * numThreads. + + This is based on the 'A-Res' algorithm in 'Weighted Random Sampling', 2005; Efraimidis, Spirakis: + https://utopia.duth.gr/~pefraimi/research/data/2007EncOfAlg.pdf + + + + + Takes a data cursor and perform an in-memory parallel aggregation operation on it. This + helper wraps some of the behavior common to parallel operations over a set, + including building the set, creating separate Random instances, and disposal. + + The type that each parallel cursor will be expected to aggregate to. + The type of the final output from combining each per-thread instance of TInterAgg. + + + + + Initializes an instance of TInterAgg, or prepares/clears it if it is already allocated. + Invoked for every row, should update TInterAgg using row cursor data. + Invoked after all row cursors have completed, combines the entire array of TInterAgg instances into a final TAgg result. + A reusable buffer array of TInterAgg. + A reusable reference to the final result. + + + + + Given a point and a set of centroids this method will determine the closest centroid + using L2 distance. It will return a value equivalent to that distance, the index of the + closest cluster, and a value equivalent to the distance to the second-nearest cluster. + + + + The L2 norms of the centroids. Used for efficiency and expected to be computed up front. + The number of centroids. Must be less than or equal to the length of the centroid array. + Whether to return a real L2 distance, or a value missing the L2 norm of . + The distance between and the nearest centroid in . + The index of the nearest centroid. + The second nearest distance, or PosInf if only contains a single point. + The index of the second nearest centroid, or -1 if only contains a single point. + + + + Checks that all coordinates of all centroids are finite, and throws otherwise + + + + diff --git a/W/Debug_Folder/Microsoft.ML.PCA.dll b/W/Debug_Folder/Microsoft.ML.PCA.dll new file mode 100644 index 000000000..0f5a3fd53 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.PCA.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.PCA.xml b/W/Debug_Folder/Microsoft.ML.PCA.xml new file mode 100644 index 000000000..2d48bf574 --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.PCA.xml @@ -0,0 +1,330 @@ + + + + Microsoft.ML.PCA + + + + + Collection of extension methods used by the , + and catalogs to create instances of Principal Component Analysis (PCA) components. + + + + Initializes a new instance of . + The transform's catalog. + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + The name of the example weight column (optional). + The number of principal components. + Oversampling parameter for randomized PrincipalComponentAnalysis training. + If enabled, data is centered to be zero mean. + The seed for random number generation. + + + Initializes a new instance of . + The transform's catalog. + Input columns to apply PrincipalComponentAnalysis on. + + + + Create , which trains an approximate principal component analysis (PCA) model using randomized singular value decomposition (SVD) algorithm. + + The anomaly detection catalog trainer object. + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). To use the weight column, the column data + must be of type . + The number of components in the PCA. + Oversampling parameter for randomized PCA training. + If enabled, data is centered to be zero mean. + The seed for random number generation. + + By default the threshold used to determine the label of a data point based on the predicted score is 0.5. Scores range from 0 to 1. A data point with predicted + score higher than 0.5 is considered an outlier. Use to change this threshold. + + + + + + + + + Create with advanced options, which trains an approximate principal component analysis (PCA) model using randomized singular value decomposition (SVD) algorithm. + + The anomaly detection catalog trainer object. + Advanced options to the algorithm. + + By default the threshold used to determine the label of a data point based on the predicted score is 0.5. Scores range from 0 to 1. A data point with predicted + score higher than 0.5 is considered an outlier. Use to change this threshold. + + + + + + + + + The for training an approximate PCA using Randomized SVD algorithm. + + + + to the data before passing it to the trainer. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + + Options for the as used in + [RandomizedPca(Options)](xref:Microsoft.ML.PcaCatalog.RandomizedPca(Microsoft.ML.AnomalyDetectionCatalog.AnomalyDetectionTrainers,Microsoft.ML.Trainers.RandomizedPcaTrainer.Options)). + + + + + Initializes a new instance of . + + The local instance of the . + The name of the feature column. + The name of the weight column. + The number of components in the PCA. + Oversampling parameter for randomized PCA training. + If enabled, data is centered to be zero mean. + The seed for random number generation. + + + + Modifies in place so it becomes * eigenvectors / eigenvalues. + + + + + Model parameters for . + + + + + Instantiate new model parameters from trained model. + + The host environment. + The rank of the PCA approximation of the covariance matrix. This is the number of eigenvectors in the model. + Array of eigenvectors. + The mean vector of the training data. + + + + Copies the top eigenvectors of the covariance matrix of the training data + into a set of buffers. + + A possibly reusable set of vectors, which will + be expanded as necessary to accommodate the data. + Set to the rank, which is also the logical length + of . + + + + Copies the mean vector of the training data. + + + + + PCA is a dimensionality-reduction transform which computes the projection of the feature vector onto a low-rank subspace. + + Principle Component Analysis (PCA) is a dimensionality-reduction algorithm which computes the projection of the feature vector to onto a low-rank subspace. + Its training is done using the technique described in the paper: Combining Structured and Unstructured Randomness in Large Scale PCA, + and the paper Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + For more information, see also: + + + Randomized Methods for Computing the Singular Value Decomposition (SVD) of very large matrices + + + A randomized algorithm for principal component analysis + + + Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + + + + + + + PCA is a dimensionality-reduction transform which computes the projection of the feature vector onto a low-rank subspace. + + Principle Component Analysis (PCA) is a dimensionality-reduction algorithm which computes the projection of the feature vector to onto a low-rank subspace. + Its training is done using the technique described in the paper: Combining Structured and Unstructured Randomness in Large Scale PCA, + and the paper Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + For more information, see also: + + + Randomized Methods for Computing the Singular Value Decomposition (SVD) of very large matrices + + + A randomized algorithm for principal component analysis + + + Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + + + + + + + Describes how the transformer handles one column pair. + + + + + Name of the column resulting from the transformation of . + + + + + Name of column to transform. + + + + + The name of the weight column. + + + + + The number of components in the PCA. + + + + + Oversampling parameter for randomized PCA training. + + + + + If enabled, data is centered to be zero mean. + + + + + The seed for random number generation. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. + If set to , the value of the will be used as source. + The name of the weight column. + The number of components in the PCA. + Oversampling parameter for randomized PCA training. + If enabled, data is centered to be zero mean. + The random seed. If unspecified random state will be instead derived from the . + + + + PCA is a dimensionality-reduction transform which computes the projection of the feature vector onto a low-rank subspace. + + Principle Component Analysis (PCA) is a dimensionality-reduction algorithm which computes the projection of the feature vector to onto a low-rank subspace. + Its training is done using the technique described in the paper: Combining Structured and Unstructured Randomness in Large Scale PCA, + and the paper Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + For more information, see also: + + + Randomized Methods for Computing the Singular Value Decomposition (SVD) of very large matrices + + + A randomized algorithm for principal component analysis + + + Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + + + + The environment to use. + Name of the column resulting from the transformation of . + Name of the column to transform. + If set to , the value of the will be used as source. + The name of the weight column. + The number of components in the PCA. + Oversampling parameter for randomized PCA training. + If enabled, data is centered to be zero mean. + The seed for random number generation. + + + + PCA is a dimensionality-reduction transform which computes the projection of the feature vector onto a low-rank subspace. + + Principle Component Analysis (PCA) is a dimensionality-reduction algorithm which computes the projection of the feature vector to onto a low-rank subspace. + Its training is done using the technique described in the paper: Combining Structured and Unstructured Randomness in Large Scale PCA, + and the paper Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + For more information, see also: + + + Randomized Methods for Computing the Singular Value Decomposition (SVD) of very large matrices + + + A randomized algorithm for principal component analysis + + + Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions + + + + The environment to use. + The dataset columns to use, and their specific settings. + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + diff --git a/W/Debug_Folder/Microsoft.ML.StandardTrainers.dll b/W/Debug_Folder/Microsoft.ML.StandardTrainers.dll new file mode 100644 index 000000000..c0dc16884 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.StandardTrainers.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.StandardTrainers.xml b/W/Debug_Folder/Microsoft.ML.StandardTrainers.xml new file mode 100644 index 000000000..bb2c1b75a --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.StandardTrainers.xml @@ -0,0 +1,4565 @@ + + + + Microsoft.ML.StandardTrainers + + + + + Collection of extension methods for the to create instances + of field aware factorization trainer components. + + + + + Create , which predicts a target using a field-aware factorization machine trained over boolean label data. + + + Note that because there is only one feature column, the underlying model is equivalent to standard factorization machine. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + + + + + + + + Create , which predicts a target using a field-aware factorization machine trained over boolean label data. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The names of the feature columns. The column data must be a known-sized vector of . + The name of the example weight column (optional). + + + + + + + + Create using advanced options, which predicts a target using a field-aware factorization machine trained over boolean label data. + + The binary classification catalog trainer object. + Trainer options. + + + + + + + + The to predict a target using a field-aware factorization machine model trained using a stochastic gradient method. + + + 0$, this model predicts true. Otherwise, it predicts false. + + For a systematic introduction to field-aware factorization machine, please see [this paper](https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf) + + ### Training Algorithm Details + The algorithm implemented in is based on [a stochastic gradient method](http://jmlr.org/papers/volume12/duchi11a/duchi11a.pdf). + Algorithm details is described in Algorithm 3 in [this online document](https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf). + The minimized loss function is [logistic loss](https://en.wikipedia.org/wiki/Loss_functions_for_classification), so the trained model can be viewed as a non-linear logistic regression. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + + + for as used in + . + + + + + Initial learning rate. + + + + + Number of training iterations. + + + + + Latent space dimension. + + + + + Regularization coefficient of linear weights. + + + + + Regularization coefficient of latent weights. + + + + + Whether to normalize the input vectors so that the concatenation of all fields' feature vectors is unit-length. + + + + + Extra feature column names. The column named stores features from the first field. + The i-th string in stores the name of the (i+1)-th field's feature column. + + + + + Whether to shuffle for each training iteration. + + + + + Report traning progress or not. + + + + + Radius of initial latent factors. + + + + + The feature column that the trainer expects. + + + + + The label column that the trainer expects. Can be null, which indicates that label + is not used for training. + + + + + The weight column that the trainer expects. Can be null, which indicates that weight is + not used for training. + + + + + The containing at least the training data for this trainer. + + + + + Initializes a new instance of through the class. + + The private instance of . + An instance of the legacy to apply advanced parameters to the algorithm. + + + + Initializes a new instance of . + + The private instance of . + The name of column hosting the features. The i-th element stores feature column of the i-th field. + The name of the label column. + The name of the weight column (optional). + + + + Initializes the instance. Shared between the two constructors. + REVIEW: Once the legacy constructor goes away, this can move to the only constructor and most of the fields can be back to readonly. + + + + + + + Continues the training of a using an already trained and/or validation data, + and returns a . + + + + Trains and returns a . + + + + Schema propagation for transformers. Returns the output schema of the data, if + the input schema is like the one provided. + + + + + Model parameters for . + + + + + Get the number of fields. It's the symbol `m` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + + + + + Get the number of features. It's the symbol `n` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + + + + + Get the latent dimension. It's the length of `v_{j, f}` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + + + + + Initialize model parameters with a trained model. + + The host environment + True if user wants to normalize feature vector to unit length. + The number of fields, which is the symbol `m` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + The number of features, which is the symbol `n` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + The latent dimensions, which is the length of `v_{j, f}` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + The linear coefficients of the features, which is the symbol `w` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + Latent representation of each feature. Note that one feature may have latent vectors + and each latent vector contains values. In the f-th field, the j-th feature's latent vector, `v_{j, f}` in the doc + https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf, starts at latentWeights[j * fieldCount * latentDim + f * latentDim]. + The k-th element in v_{j, f} is latentWeights[j * fieldCount * latentDim + f * latentDim + k]. The size of the array must be featureCount x fieldCount x latentDim. + + + + The linear coefficients of the features. It's the symbol `w` in the doc: https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf + + + + + Latent representation of each feature. Note that one feature may have latent vectors + and each latent vector contains values. In the f-th field, the j-th feature's latent vector, `v_{j, f}` in the doc + https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf, starts at latentWeights[j * fieldCount * latentDim + f * latentDim]. + The k-th element in v_{j, f} is latentWeights[j * fieldCount * latentDim + f * latentDim + k]. + The size of the returned value is featureCount x fieldCount x latentDim. + + + + + The name of the feature column used by the prediction transformer. + + + + + The type of the feature columns. + + + + + Gets the result after transformation. + + The of the input data. + The post transformation . + + + + Saves the transformer to file. + + The that facilitates saving to the . + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Version information to be saved in binary format + + + + + + Constructor. w, thetaPrime, theta must be dense s. + Note that this takes over ownership of all such vectors. + + + + + Create method to instantiate a predictor. + + + + + Save the predictor in binary format. + + + + + Save an array of in binary format. The vectors must be dense. + + The context where we will save the vectors. + An array of vectors. + + + + Load an array of from binary format. + + The context from which to read the vectors. + The length of the array of vectors. + The length of each vector. + An array of vectors. + + + + Compute Margin. + + + + + The to predict a target using a non-linear binary classification model + trained with Local Deep SVM. + + + + + + + + + + + Depth of LDSVM Tree + + + + + Regularizer for classifier parameter W + + + + + Regularizer for kernel parameter Theta + + + + + Regularizer for kernel parameter ThetaPrime + + + + + Parameter for sigmoid sharpness + + + + + Indicates if we should use Bias or not in our model. + + + + + Number of iterations + + + + + Compute gradient w.r.t theta for an instance X + + + + + Adaptively update gamma for indicator function approximation. + + + + + Main LDSVM training routine. + + + + + Inititlize classifier parameters + + + + + Initialization of model. + + + + + A class that contains the current train state to use for learning rate scheduling. + + + + + This abstract class defines a learning rate scheduler. + + + + + This class implements linear scaling rule and LR decay. + Implementation adopted from RESNET-CIFAR benchmark test in Tensorflow slim. + https://github.com/tensorflow/models/blob/b974c3f95a37acedcc3c58566834c78fcae4b214/official/vision/image_classification/resnet_cifar_main.py + + + + + This structure represents a learning rate scheduler item type + + + + + Start epoch to match with the scaling factor + + + + + Scaling factor or multiplier that changes the learning rate for Linear scale rule + + + + + Learning rate is scaled at epoch boundaries provided in LrSchedule to corresponding multiplier in the LrSchedule. + Format for LrSchedule: {start epoch, scaling factor}, ordered with largest start epoch first + + + + + Base Learning rate to start off with. + + + + + Linear Scale rule and LR Decay construtor assigns a default LR scheduler. + + + + + Linear Scale rule and LR Decay construtor assigns a user defined LR scheduler. + + + + + This function returns the corresponding scaling factor or multiplier for the given epoch from the LrSchedule. + + + + + This function returns the Learning rate using linear scale rule and LR decay. + + + + + This class implements Exponential Learning rate decay. + Implemented from the tensorflow documentation. + Source: https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/exponential_decay + Default values and implementation of learning rate is from Tensorflow Slim model tests. + Source : https://github.com/tensorflow/models/blob/master/research/slim/train_image_classifier.py + + + + + Initial learning rate. + + + + + The number of batches seen by the graph so far. + + + + + Number of decay steps + + + + + Learning rate decay factor. + + + + + If Staircase is True the learning rate decays at discrete intervals and the decayed learning rate follows a staircase function. + + + + + Number of epochs after which learning rate decays. + + + + + This contructor initializes intial learning rate, number epochs per decay, decay rate and the staircase option. + The defaults are taken from Tensorflow Slim. + + + + + Computes exponentially decayed learning rate + + + + + This class implements polynomial Learning rate decay. + Implemented from the tensorflow documentation. + Source: https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/polynomial_decay + Default values and implementation of learning rate is from Tensorflow Slim model tests. + Source : https://github.com/tensorflow/models/blob/master/research/slim/train_image_classifier.py + + + + + Initial learning rate. + + + + + The minimal end learning rate. + + + + + The power of the polynomial + + + + + whether or not it should cycle once decay has been reached + + + + + Number of epochs after which learning rate decays. + + + + + Base class for linear model parameters. + + + + The predictor's feature weight coefficients. + + + The predictor's bias term. + + + + Used to determine the contribution of each feature to the score of an example by . + For linear models, the contribution of a given feature is equal to the product of feature value times the corresponding weight. + + + + + Constructs a new linear predictor. + + The host environment. + Component name. + The weights for the linear model. The i-th element of weights is the coefficient + of the i-th feature. Note that this will take ownership of the . + The bias added to every output score. + + + + Combine a bunch of models into one by averaging parameters + + + + + The model parameters class for linear binary trainer estimators. + + + + + Constructs a new linear binary predictor. + + The host environment. + The weights for the linear model. The i-th element of weights is the coefficient + of the i-th feature. Note that this will take ownership of the . + The bias added to every output score. + + + + + Combine a bunch of models into one by averaging parameters + + + + + + + + Model parameters for regression. + + + + + Output the INI model to a given writer + + + + + Model parameters for linear regression. + + + + + Constructs a new linear regression model from trained weights. + + The host environment. + The weights for the linear model. The i-th element of weights is the coefficient + of the i-th feature. Note that this will take ownership of the . + The bias added to every output score. + + + + Combine a bunch of models into one by averaging parameters + + + + + + + + Model parameters for Poisson Regression. + + + + + Constructs a new Poisson regression model parameters from trained model. + + The Host environment. + The weights for the linear model. The i-th element of weights is the coefficient + of the i-th feature. Note that this will take ownership of the . + The bias added to every output score. + + + + Combine a bunch of models into one by averaging parameters + + + + + Helper methods for linear predictors + + + + + print the linear model as code + + + + + Ensure that feature name is a legitimate variable name + + + + + Build a Bing TreeEnsemble .ini representation of the given predictor + + + + + Output the weights of a linear model to a given writer + + + + + Output the weights of a linear model to key value pairs. + + + + + Base class for L-BFGS-based trainers. + + + + + Base options class for trainer estimators deriving from. + + + + + L2 regularization weight. + + + + + L1 regularization weight. + + + + + Tolerance parameter for optimization convergence. (Low = slower, more accurate). + + + + + Number of previous iterations to remember for estimating the Hessian. Lower values mean faster but less accurate estimates. + + + + + Number of iterations. + + + + + Run SGD to initialize LR weights, converging to this tolerance. + + + + + Determines whether to produce output during training or not. + + + If set to no output is produced. + + + + + Initial weights scale. + + + This property is only used if the provided value is positive. + The weights will be randomly selected from InitialWeights * [-0.5,0.5] interval with uniform distribution. + + + + + Number of threads. Null means use the number of processors. + + + + + Force densification of the internal optimization vectors. Default is false. + + + + + Enforce non-negative weights. Default is false. + + + + + Initialize weights by running SGD up to specified tolerance. + + + + + The basic training calls the optimizer + + + + + The gradient being used by the optimizer + + + + + Batch-parallel optimizer + + + REVIEW: consider getting rid of multithread-targeted members + Using TPL, the distinction between Multithreaded and Sequential implementations is unnecessary + + + + + The to predict a target using a linear logistic regression model trained with L-BFGS method. + + + + + + + + + + + + Options for the as used in + + + + + + If set to true training statistics will be generated at the end of training. + If you have a large number of learned training parameters(more than 500), + generating the training statistics might take a few seconds. + More than 1000 weights might take a few minutes. For those cases consider using the instance of + present in the Microsoft.ML.Mkl.Components package. That computes the statistics using hardware acceleration. + + + + + The instance of that computes the std of the training statistics, at the end of training. + The calculations are not part of Microsoft.ML package, due to the size of MKL. + If you need these calculations, add the Microsoft.ML.Mkl.Components package, and initialize . + to the implementation in the Microsoft.ML.Mkl.Components package. + + + + + Initializes a new instance of + + The environment to use. + The name of the label column. + The name of the feature column. + The name for the example weight column. + Enforce non-negative weights. + Weight of L1 regularizer term. + Weight of L2 regularizer term. + Memory size for . Low=faster, less accurate. + Threshold for optimizer convergence. + + + + Initializes a new instance of + + + + + Continues the training of a using an already trained and returns + a . + + + + + Computes the standard deviation matrix of each of the non-zero training weights, needed to calculate further the standard deviation, + p-value and z-Score. + Use this class' implementation in the Microsoft.ML.Mkl.Components package which uses Intel Math Kernel Library. + Due to the existence of regularization, an approximation is used to compute the variances of the trained linear coefficients. + + + + + Computes the standard deviation matrix of each of the non-zero training weights, needed to calculate further the standard deviation, + p-value and z-Score. + The calculations are not part of Microsoft.ML package, due to the size of MKL. + If you need these calculations, add the Microsoft.ML.Mkl.Components package, and initialize + to the implementation in the Microsoft.ML.Mkl.Components package. + Due to the existence of regularization, an approximation is used to compute the variances of the trained linear coefficients. + + + + + The to predict a target using a maximum entropy multiclass classifier trained with L-BFGS method. + + + + + + + + + + + + for as used in + . + + + + + If set to true training statistics will be generated at the end of training. + + + + + Initializes a new instance of . + + The environment to use. + The name of the label column. + The name of the feature column. + The name for the example weight column. + Enforce non-negative weights. + Weight of L1 regularizer term. + Weight of L2 regularizer term. + Memory size for . Low=faster, less accurate. + Threshold for optimizer convergence. + + + + Initializes a new instance of . + + + + + Continues the training of a using an already trained and returns + a . + + + + + Common linear model of multiclass classifiers. contains a single + linear model per class. + + + + + Initializes a new instance of the class. + This constructor is called by to create the predictor. + + The host environment. + Registration name of this model's actual type. + The array of weights vectors. It should contain weights. + The array of biases. It should contain contain weights. + The number of classes for multi-class classification. Must be at least 2. + The length of the feature vector. + The optional label names. If specified not null, it should have the same length as . + The model statistics. + + + + Post-processing function applied to scores of each class' linear model output. + In we compute the i-th class' score + by using inner product of the i-th linear coefficient vector [i] and the input feature vector (plus bias). + Then, will be called to adjust those raw scores. + + + + + Actual implementation of should happen in derived classes. + + + + + Redirect call to the right function. + + + + + Summary is equivalent to its information in text format. + + + + + Actual implementation of should happen in derived classes. + + + + + The raw scores of all linear classifiers are stored in [] . + Derived classes can use this functin to add C# code for post-transformation. + + + + + Redirect call to the right function. + + + + + Actual implementation of should happen in derived classes. + + + + + This is called at the end of to adjust the final outputs of all linear models. + + + + + Redirect call to the right function. + + + + + Actual implementation of should happen in derived classes. + It's ok to make a method in the future + if any derived class wants to override. + + + + + Post-transform applied to the raw scores produced by those linear models of all classes. For maximum entropy classification, it should be + a softmax function. This function is used only in . + + + + + Redirect call to the right function. + + + + + Copies the weight vector for each class into a set of buffers. + + A possibly reusable set of vectors, which will + be expanded as necessary to accommodate the data. + Set to the rank, which is also the logical length + of . + + + + Gets the biases for the logistic regression predictor. + + + + + Linear model of multiclass classifiers. It outputs raw scores of all its linear models, and no probablistic output is provided. + + + + + Function used to pass into parent class. It may be used when saving the model. + + + + + This function does not do any calibration. It's common in multi-class support vector machines where probabilitic outputs are not provided. + + Score vector should be calibrated. + + + + No post-transform is needed for non-clibrated classifier. + + + + + No post-transform is needed for non-clibrated classifier. + + + + + Linear maximum entropy model of multiclass classifiers. It outputs classes probabilities. + This model is also known as multinomial logistic regression. + Please see https://en.wikipedia.org/wiki/Multinomial_logistic_regression for details. + + + + + Function used to pass into parent class. It may be used when saving the model. + + + + + This function applies softmax to . For details about softmax, see https://en.wikipedia.org/wiki/Softmax_function. + + Score vector should be calibrated. + + + + Apply softmax function to , which contains raw scores from all linear models. + + + + + Apply softmax to the raw scores produced by the lienar models of all classes. + + + + + Apply softmax to the raw scores produced by the lienar models of all classes. + + + + + Represents a coefficient statistics object containing statistics about the calculated model parameters. + + + + + The model parameter (bias of weight) for which the statistics are generated. + + + + + The standard deviation of the estimate of this model parameter (bias of weight). + + + + + The standard score of the estimate of this model parameter (bias of weight). + Quantifies by how much the estimate is above or below the mean. + + + + + The probability value of the estimate of this model parameter (bias of weight). + + + + + The index of the feature, in the Features vector, to which this model parameter (bias of weight) corresponds to. + + + + + Statistics for linear model parameters. + + + + + Support method for linear models and . + + + + + Statistics for linear model parameters. + + + + + The weights of the LinearModelParams trained. + + + + + The bias of the LinearModelParams trained. + + + + + Computes the standart deviation, Z-Score and p-Value for the value being passed as the bias. + + + + + Computes the standart deviation, Z-Score and p-Value for the calculated bias. + + + + + Gets the coefficient statistics as an object. + + + + + Saves the statistics in Text format. + + + + + Support method for linear models and . + + + + + The label column that the trainer expects. + + + + + Initializes the from the class. + + The private instance of the . + The legacy arguments class. + The component name. + The label column for the metalinear trainer and the binary trainer. + The binary estimator. + The calibrator. If a calibrator is not explicitly provided, it will default to + + + + The legacy train method. + + The trainig context for this learner. + The trained model. + + + + Gets the output columns. + + The input schema. + The output + + + + Fits the data to the trainer. + + The input data to fit to. + The transformer. + + + + The for training a multiclass Naive Bayes model that supports binary feature values. + + + + + + + + + Return the type of prediction task. + + + + Auxiliary information about the trainer in terms of its capabilities + and requirements. + + + + + Initializes a new instance of + + The environment to use. + The name of the label column. + The name of the feature column. + + + + Initializes a new instance of + + + + + Model parameters for . + + + + Return the type of prediction task. + + + + Get the label histogram. + + + + + Get the label histogram with generic type long. + + + + + Get the feature histogram. + + + + + Get the feature histogram with generic type long. + + + + + Instantiates new model parameters from trained model. + + The host environment. + The histogram of labels. + The feature histogram. + The number of features. + + + + The unit test TestEntryPoints.LoadEntryPointModel() exercises the ReadIntArrary(int size) codepath below + as its ctx.Header.ModelVerWritten is 0x00010001, and the persistent model that gets loaded and executed + for this unit test is located at test\data\backcompat\ep_model3.zip/> + + + + + Creates an Onnx inferencing model by vectorizing and following the logic found in + + + + + The for training a one-versus-all multi-class classifier that uses the specified binary classifier. + + + , + can be different from , which develops a multi-class classifier directly. + Note that even if the classifier indicates that it does not need caching, OneVersusAll will always + request caching, as it will be performing multiple passes over the data set. + This trainer will request normalization from the data pipeline if the classifier indicates it would benefit from it. + + This can allow you to exploit trainers that do not naturally have a + multiclass option, for example, using the + to solve a multiclass problem. + Alternately, it can allow ML.NET to solve a "simpler" problem even in the cases + where the trainer has a multiclass option, but using it directly is not + practical due to, usually, memory constraints. For example, while a multiclass + logistic regression is a more principled way to solve a multiclass problem, it + requires that the trainer store a lot more intermediate state in the form of + L-BFGS history for all classes *simultaneously*, rather than just one-by-one + as would be needed for a one-versus-all classification model. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Options passed to + + + + + Whether to use probabilities (vs. raw outputs) to identify top-score category. + + + + + Constructs a trainer supplying a . + + The private for this estimator. + The legacy + + + + Initializes a new instance of . + + The instance. + An instance of a binary used as the base trainer. + The calibrator. If a calibrator is not provided, it will default to + The name of the label colum. + If true will treat missing labels as negative labels. + Number of instances to train the calibrator. + Use probabilities (vs. raw outputs) to identify top-score category. + + + Trains a model. + The input data. + A model./> + + + + Model parameters for . + + + + + Retrieves the model parameters. + + + + + The type of the prediction task. + + + + + Function applied to output of predictors. Assume that we have n predictors (one per class) and for the i-th predictor, + y_i is its raw output and p_i is its probability output. Note that not all predictors are able to produce probability output. + + : output the result of predictors without post-processing. Output is [y_1, ..., y_n]. + : fetch probability output of each class probability from provided predictors and make sure the sume of class probabilities is one. + Output is [p_1 / (p_1 + ... + p_n), ..., p_n / (p_1 + ... + p_n)]. + : Generate probability by feeding raw outputs to softmax function. Output is [z_1, ..., z_n], where z_i is exp(y_i) / (exp(y_1) + ... + exp(y_n)). + + + + + + Create a from an array of predictors. + + + + + Each predictor produces a probability of a class. All classes' probabilities are normalized so that + their sum is one. + + + + + The for training a pairwise coupling multi-class classifier that uses the specified binary classifier. + + + + to solve a multiclass problem. + Alternately, it can allow ML.NET to solve a "simpler" problem even in the cases + where the trainer has a multiclass option, but using it directly is not + practical due to, usually, memory constraints. For example, while a multiclass + logistic regression is a more principled way to solve a multiclass problem, it + requires that the trainer store a lot more intermediate state in the form of + L-BFGS history for all classes *simultaneously*, rather than just one-by-one + as would be needed for a pairwise coupling classification model. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Options passed to . + + + + + Constructs a trainer supplying the base trainer to use, for the classification task + through the Options. + + + + + Initializes a new instance of the + + The instance. + An instance of a binary used as the base trainer. + The name of the label column. + Whether to treat missing labels as having negative labels, instead of keeping them missing. + The calibrator to use for each model instance. If a calibrator is not explicitely provided, it will default to + Number of instances to train the calibrator. + + + + Fits the data to the transformer + + The input data. + The trained predictor. + + + + Model parameters for . + + + + Return the type of prediction task. + + + + Arguments class for averaged linear trainers. + + + + + Learning rate. + + + + + Determine whether to decrease the or not. + + + to decrease the as iterations progress; otherwise, . + Default is . The learning rate will be reduced with every weight update proportional to the square root of the number of updates. + + + + + Number of examples after which weights will be reset to the current average. + + + Default is , which disables this feature. + + + + + Determines when to update averaged weights. + + + to update averaged weights only when loss is nonzero. + to update averaged weights on every example. + Default is . + + + + + The L2 weight for regularization. + + + + + Extra weight given to more recent updates. + + + Default is 0, i.e. no extra gain. + + + + + Determines whether is multiplicative or additive. + + + means is multiplicative. + means is additive. + Default is . + + + + + Determines whether to do averaging or not. + + + to do averaging; otherwise, . + Default is . + + + + + The inexactness tolerance for averaging. + + + + + Base class for averaged linear trainers. + + + + + Return the raw margin from the decision hyperplane + + + + + Add current weights and bias to average weights/bias. + + + + + The to predict a target using a linear binary classification model trained with the averaged perceptron. + + + + + + + + + + + + Options for the as used in + . + + + + + A custom loss. + + + + + A custom loss. + + + + + The calibrator for producing probabilities. Default is exponential (aka Platt) calibration. + + + + + The maximum number of examples to use when training the calibrator. + + + + + Trains a linear binary classifier using the averaged perceptron. + Wikipedia entry for Perceptron + + The local instance of the + The classification loss function. + The name of the label column. + The name of the feature column. + The learning rate. + Whether to decrease learning rate as iterations progress. + Weight of L2 regularization term. + The number of training iterations. + + + + The to predict a target using a linear binary classification model + trained with Linear SVM. + + + + + + + + + + + Options for the as used in + . + + + + + Column to use for example weight. + + + + + Observe an example and update weights if necesary. + + + + + Updates the weights at the end of the batch. Since weightsUpdate can be an instance + feature vector, this function should not change the contents of weightsUpdate. + + + + + Return the raw margin from the decision hyperplane. + + + + + Initializes a new instance of . + + The environment to use. + The name of the label column. + The name of the feature column. + The name of the example weight column (optional). + The number of training iteraitons. + + + + The for training a linear regression model using + Online Gradient Descent (OGD) for estimating the parameters of the linear regression model. + + + + + + + + + + + + Options for the as used in + [OnlineGradientDescent(Options)](xref:Microsoft.ML.StandardTrainersCatalog.OnlineGradientDescent(Microsoft.ML.RegressionCatalog.RegressionTrainers,Microsoft.ML.Trainers.OnlineGradientDescentTrainer.Options)). + + + + + A custom loss. + + + + + Create a new object with default values. + + + + + Trains a new . + + The pricate instance of . + Name of the label column. + Name of the feature column. + The learning Rate. + Decrease learning rate as iterations progress. + Weight of L2 regularization term. + Number of training iterations through the data. + The custom loss functions. Defaults to if not provided. + + + + Arguments class for online linear trainers. + + + + + Number of passes through the training dataset. + + + + + Initial weights and bias, comma-separated. + + + + + Initial weights and bias scale. + + + This property is only used if the provided value is positive and is not specified. + The weights and bias will be randomly selected from InitialWeights * [-0.5,0.5] interval with uniform distribution. + + + + + Determines whether to shuffle data for each training iteration. + + + to shuffle data for each training iteration; otherwise, . + Default is . + + + + + Base class for online linear trainers. Online trainers can be updated incrementally with additional data. + + + + + An object to hold the mutable updatable state for the online linear trainers. Specific algorithms should subclass + this, and return the instance via . + + + + + The number of iterations. Incremented by . + + + + + The number of examples in the current iteration. Incremented by , + and reset by . + + + + + Current weights. The weights vector is considered to be scaled by . Storing this separately + allows us to avoid the overhead of an explicit scaling, which some algorithms will attempt to do on each example's update. + + + + + The implicit scaling factor for . Note that this does not affect . + + + + + The intercept term. + + + + + Propagates the to the vector. + + + + + Conditionally propagates the to the vector + when it reaches a scale where additions to weights would start dropping too much precision. + ("Too much" is mostly empirically defined.) + + + + + Called by at the start of a pass over the dataset. + + + + + Called by after a pass over the dataset. + + + + + This should be overridden by derived classes. This implementation simply increments . + + + + + Return the raw margin from the decision hyperplane + + + + + The default implementation just calls . + + + + + + + Continues the training of a using an already trained and returns a . + + + + + The for training a Poisson regression model. + + + + + + + + + + + + Options for the as used in + [LbfgsPoissonRegression(Options)](xref:Microsoft.ML.StandardTrainersCatalog.LbfgsPoissonRegression(Microsoft.ML.RegressionCatalog.RegressionTrainers,Microsoft.ML.Trainers.LbfgsPoissonRegressionTrainer.Options)). + + + + + Initializes a new instance of + + The environment to use. + The name of the label column. + The name of the feature column. + The name for the example weight column. + Weight of L1 regularizer term. + Weight of L2 regularizer term. + Threshold for optimizer convergence. + Memory size for . Low=faster, less accurate. + Enforce non-negative weights. + + + + Initializes a new instance of + + + + + Continues the training of a using an already trained and returns + a . + + + + + Whether data is to be shuffled every epoch. + + + + + This method ensures that the data meets the requirements of this trainer and its + subclasses, injects necessary transforms, and throws if it couldn't meet them. + + The channel + The training examples + Gets the length of weights and bias array. For binary classification and regression, + this is 1. For multi-class classification, this equals the number of classes on the label. + A potentially modified version of + + + + Options for the SDCA-based trainers. + + + + + The L2 regularization hyperparameter. + + + + + The L1 regularization hyperparameter. + + + + + The degree of lock-free parallelism. + + + Defaults to automatic depending on data sparseness. Determinism is not guaranteed. + + + + + The tolerance for the ratio between duality gap and primal loss for convergence checking. + + + + + The maximum number of passes to perform over the data. + + + Set to 1 to simulate online learning. Defaults to automatic. + + + + + Determines whether to shuffle data for each training iteration. + + + to shuffle data for each training iteration; otherwise, . + Default is . + + + + + Determines the frequency of checking for convergence in terms of number of iterations. + + + Set to zero or negative value to disable checking. If , it defaults to ." + + + + + The learning rate for adjusting bias from being regularized. + + + + + Returns the names of the metrics reported by , as well as the initial values. + + + + + Train the SDCA optimizer with one iteration over the entire training examples. + + The progress reporting channel. + The cursor factory to create cursors over the training examples. + + The random number generator to generate random numbers for randomized shuffling of the training examples. + It may be null. When it is null, the training examples are not shuffled and are cursored in its original order. + + + The id to index mapping. May be null. If it is null, the index is given by the + corresponding lower bits of the id. + + The number of threads used in parallel training. It is used in computing the dual update. + + The dual variables. For binary classification and regression, there is one dual variable per row. + For multiclass classification, there is one dual variable per class per row. + + The array containing regularized bias terms. For binary classification or regression, + it contains only a single value. For multiclass classification its size equals the number of classes. + + The dual updates invariants. It may be null. If not null, it holds an array of pre-computed numerical quantities + that depend on the training example label and features, not the value of dual variables. + + The precomputed numerical quantity 1 / (l2Const * (count of training examples)). + + The weights array. For binary classification or regression, it consists of only one VBuffer. + For multiclass classification, its size equals the number of classes. + + + The array containing unregularized bias terms. For binary classification or regression, + it contains only a single value. For multiclass classification its size equals the number of classes. + + + The array holding the intermediate weights prior to making L1 shrinkage adjustment. It is null iff l1Threshold is zero. + Otherwise, for binary classification or regression, it consists of only one VBuffer; + for multiclass classification, its size equals the number of classes. + + + The array holding the intermediate bias prior to making L1 shrinkage adjustment. It is null iff l1Threshold is zero. + Otherwise, for binary classification or regression, it consists of only one value; + for multiclass classification, its size equals the number of classes. + + + The array holding the pre-computed squared L2-norm of features for each training example. It may be null. It is always null for + binary classification and regression because this quantity is not needed. + + + + + Returns whether the algorithm converged, and also populates the + (which is expected to be parallel to the names returned by ). + When called, the is expected to hold the previously reported values. + + The progress reporting channel. + The iteration number, zero based. + The cursor factory to create cursors over the training data. + + The dual variables. For binary classification and regression, there is one dual variable per row. + For multiclass classification, there is one dual variable per class per row. + + + The id to index mapping. May be null. If it is null, the index is given by the + corresponding lower bits of the id. + + + The weights array. For binary classification or regression, it consists of only one VBuffer. + For multiclass classification, its size equals the number of classes. + + + The weights array that corresponds to the best model obtained from the training iterations thus far. + + + The array containing unregularized bias terms. For binary classification or regression, + it contains only a single value. For multiclass classification its size equals the number of classes. + + + The array containing unregularized bias terms corresponding to the best model obtained from the training iterations thus far. + For binary classification or regression, it contains only a single value. + For multiclass classification its size equals the number of classes. + + + The array containing regularized bias terms. For binary classification or regression, + it contains only a single value. For multiclass classification its size equals the number of classes. + + + The array containing regularized bias terms corresponding to the best model obtained from the training iterations thus far. + For binary classification or regression, it contains only a single value. + For multiclass classification its size equals the number of classes. + + + The count of (valid) training examples. Bad training examples are excluded from this count. + + + The array of metrics for progress reporting. + + + The primal loss function value corresponding to the best model obtained thus far. + + The iteration number when the best model is obtained. + Whether the optimization has converged. + + + + Encapsulates the common functionality of storing and + retrieving the dual variables. + + + + + Implementation of using a standard array. + + + + + Implementation of using a big array. + + + + + Returns a function delegate to retrieve index from id. + This is to avoid redundant conditional branches in the tight loop of training. + + + + + Returns a function delegate to retrieve index from id and row. + Only works if the cursor is not shuffled. + This is to avoid redundant conditional branches in the tight loop of training. + + + + + A hash table data structure to store Id of type , + and accommodates size larger than 2 billion. This class is an extension based on BCL. + Two operations are supported: adding and retrieving an id with asymptotically constant complexity. + The bucket size are prime numbers, starting from 3 and grows to the next prime larger than + double the current size until it reaches the maximum possible size. When a table growth is triggered, + the table growing operation initializes a new larger bucket and rehash the existing entries to + the new bucket. Such operation has an expected complexity proportional to the size. + + + + + Gets the count of id entries. + + + + + Initializes an instance of the class with the specified size. + + + + + Make sure the given id is in this lookup table and return the index of the id. + + + + + Find the index of the given id. + Returns a bool representing if id is present. + Index outputs the index that the id, -1 otherwise. + + + + + Return the index of value, -1 if it is not present. + + + + + Adds the value as a TItem. Does not check whether the TItem is already present. + Returns the index of the added value. + + + + + Sum with underflow compensation for better numerical stability. + + + + + SDCA is a general training algorithm for (generalized) linear models such as support vector machine, linear regression, logistic regression, + and so on. SDCA binary classification trainer family includes several sealed members: + (1) supports general loss functions and returns . + (2) essentially trains a regularized logistic regression model. Because logistic regression + naturally provide probability output, this generated model's type is . + where is and is . + + + + + Options for . + + + + + The weight to be applied to the positive class. This is useful for training with imbalanced data. + + + Default value is 1, which means no extra weight. + + + + + Initializes a new instance of + + The environment to use. + The label, or dependent variable. + The features, or independent variables. + The custom loss. + The optional example weights. + The L2 regularization hyperparameter. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + The for training a binary logistic regression classification model using the stochastic dual coordinate ascent method. + The trained model is calibrated and can produce probability by feeding the output value of the + linear function to a . + + + + + + + + + + + + Options for the as used in + [SdcaLogisticRegression(Options)](xref:Microsoft.ML.StandardTrainersCatalog.SdcaLogisticRegression(Microsoft.ML.BinaryClassificationCatalog.BinaryClassificationTrainers,Microsoft.ML.Trainers.SdcaLogisticRegressionBinaryTrainer.Options)). + + + + + The for training a binary logistic regression classification model using the stochastic dual coordinate ascent method. + + + + + + + + + + + + Options for the . + + + + + The custom loss. + + + If unspecified, will be used. + + + + + The custom loss. + + + If unspecified, will be used. + + + + + Comparing with , + directly outputs a built from + the learned weights and bias without calibration. + + + + + is used to support classical command line tools where model is weakly-typed to + . Please do NOT use it whenever possible. + + + + + Legacy configuration to SDCA in legacy framework. + + + + + Weekly-typed function to create calibrated or uncalibrated predictors. + + + + + The L2 weight for regularization. + + + + + The degree of lock-free parallelism used by SGD. + + + Defaults to automatic depending on data sparseness. Determinism is not guaranteed. + + + + + The convergence tolerance. If the exponential moving average of loss reductions falls below this tolerance, + the algorithm is deemed to have converged and will stop. + + + + + The maximum number of passes through the training dataset. + + + Set to 1 to simulate online learning. + + + + + The initial learning rate used by SGD. + + + + + Determines whether to shuffle data for each training iteration. + + + to shuffle data for each training iteration; otherwise, . + Default is . + + + + + The weight to be applied to the positive class. This is useful for training with imbalanced data. + + + Default value is 1, which means no extra weight. + + + + + Determines the frequency of checking for convergence in terms of number of iterations. + + + Default equals ." + + + + + Initializes a new instance of + + The environment to use. + The name of the feature column. + The name of the label column. + The name of the example weight column. + The maximum number of iterations; set to 1 to simulate online learning. + The initial learning rate used by SGD. + The L2 regularizer constant. + The loss function to use. + + + + Initializes a new instance of + + The environment to use. + Advanced arguments to the algorithm. + Loss function would be minimized. + Set to true if a calibration step should be happen after training. Use false otherwise. + + + + Continues the training of a using an already trained and returns a . + + + + + implements a mechanism to craft a typed model out from linear weights and a bias. + It's used at the end of to finalize the trained model. + Derived classes should implement because different trainers may produce different + types of models. + + Weights of linear model. + Bias of linear model. + A model built upon weights and bias. It can be as simple as a . + + + + A helper function used to create in implementations of . + + + + + The for training logistic regression using a parallel stochastic gradient method. + The trained model is calibrated and can produce probability by feeding the output value of the + linear function to a . + + + + + + + + + + + + Options for the as used in + [SgdCalibrated(Options)](xref:Microsoft.ML.StandardTrainersCatalog.SgdCalibrated(Microsoft.ML.BinaryClassificationCatalog.BinaryClassificationTrainers,Microsoft.ML.Trainers.SgdCalibratedTrainer.Options)). + + + + + Initializes a new instance of + + The environment to use. + Advanced arguments to the algorithm. + + + + Logistic regression's output can naturally be interpreted as probability, so this model has three output columns. + + + + + Given weights and bias trained in , + produces the final calibrated linear model. + + + + + The for training logistic regression using a parallel stochastic gradient method. + + + + + + + + + + + + Options for the as used in + [SgdNonCalibrated(Options)](xref:Microsoft.ML.StandardTrainersCatalog.SgdNonCalibrated(Microsoft.ML.BinaryClassificationCatalog.BinaryClassificationTrainers,Microsoft.ML.Trainers.SgdNonCalibratedTrainer.Options)). + + + + + The loss function to use. Default is . + + + + + Initializes a new instance of + + The environment to use. + Advanced arguments to the algorithm. + + + + is used to support classical command line + tools where model is weakly-typed to . Please do NOT use it + whenever possible. + + + + + Initializes a new instance of + + The environment to use. + Advanced arguments to the algorithm. + + + + leads to logistic regression which naturally supports probability output. For other loss functions, + a calibrator would be added after + finishing its job. Therefore, we always have three output columns in the legacy world. + + + + + + + A component to train an SDCA model. + + + The Entry Point for SDCA multiclass. + + + The Entry Point for the SDCA regressor. + + + + + The to predict a target using a linear multiclass classifier model trained with a coordinate descent method. + Depending on the used loss function, the trained model can be, for example, maximum entropy classifier or multi-class support vector machine. + + + + + + + + + + + + + + + Options for the . + + + + + The custom loss. + + + If unspecified, will be used. + + + + + Internal state of or storage of + a customized loss passed in. cannot set this field because its + loss function is always . In addition, and are + the two fields used to determined the actual loss function inside the training framework of . + + + + + Initializes a new instance of . + + The environment to use. + The label, or dependent variable. + The features, or independent variables. + The optional example weights. + The custom loss. + The L2 regularization hyperparameter. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + + + + + + + The to predict a target using a maximum entropy multiclass classifier. + The trained model produces probabilities of classes. + + + + + + + + + + + + for as used in + + + + + + The to predict a target using a linear multiclass classifier. + The trained model produces probabilities of classes. + + + + + + + + + + + + for as used in + . + + + + + Loss function minimized by this trainer. + + + If unspecified, will be used. + + + + + The for training a regression model using the stochastic dual coordinate ascent method. + + + + + + + + + + + + Options for the . + + + + + A custom loss. + + + Defaults to + + + + + A custom loss. + + + Defaults to + + + + + Create the object. + + + + + Initializes a new instance of + + The environment to use. + The label, or dependent variable. + The features, or independent variables. + The optional example weights. + The custom loss. + The L2 regularization hyperparameter. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + This is a faulty model parameters that claims to be a . We maintain the class for + now for backwards compatibility of models (assuming there are any), but might consider removing it in the future. + + + + Return the type of prediction task. + + + + Instantiate a model that returns a uniform random probability. + + The host environment. + The random seed. + + + + Load the predictor from the binary format. + + + + + Save the predictor in the binary format. + + + + + + The for predicting a target using a binary classification model. + + + + + + + + + Return the type of prediction task. + + + + Auxiliary information about the trainer in terms of its capabilities + and requirements. + + + + + Initializes PriorTrainer object. + + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Model parameters for . + + + + + Instantiates a model that returns the prior probability of the positive class in the training set. + + The host environment. + The probability of the positive class. + + + + Whether data is to be shuffled every epoch. + + + + + This method ensures that the data meets the requirements of this trainer and its + subclasses, injects necessary transforms, and throws if it couldn't meet them. + + The channel + The training examples + Gets the length of weights and bias array. For binary classification and regression, + this is 1. For multi-class classification, this equals the number of classes on the label. + A potentially modified version of + + + + A delegate for functions with gradients. + + The point at which to evaluate the function + The gradient vector, which must be filled in (its initial contents are undefined) + The progress channel provider that can be used to report calculation progress. Can be null. + The value of the function + + + + A delegate for indexed sets of functions with gradients. + + REVIEW: I didn't add an here, since it looks like this code is not actually + accessed from anywhere. Maybe it should go away? + + The index of the function + The point at which to evaluate the function + The gradient vector, which must be filled in (its initial contents are undefined) + The value of the function + + + + Class to aggregate an indexed differentiable function into a single function, in parallel + + + + + Creates a DifferentiableFunctionAggregator + + Indexed function to use + Dimensionality of the function + Max index of the function + Number of threads to use + + + + Evaluate and sum the function over all indices, in parallel + + The point at which to evaluate the function + The gradient vector, which must be filled in (its initial contents are undefined) + Function value + + + + A class for testing the gradient of DifferentiableFunctions, useful for debugging + + + Works by comparing the reported gradient to the numerically computed gradient. + If the gradient is correct, the return value should be small (order of 1e-6). + May have false negatives if extreme values cause the numeric gradient to be off, + for example, if the norm of x is very large, or if the gradient is changing rapidly at x. + + + + + Tests the gradient reported by f. + + function to test + point at which to test + maximum normalized difference between analytic and numeric directional derivative over multiple tests + + + + Tests the gradient reported by f. + + function to test + point at which to test + If false, outputs detailed info. + maximum normalized difference between analytic and numeric directional derivative over multiple tests + + + + The head of the test output + + + + + Tests the gradient using finite differences on each axis (appropriate for small functions) + + + + + + + Tests the gradient using finite differences on each axis in the list + + Function to test + Point at which to test + List of coordinates to test + + + + Tests the gradient reported by . + + Function to test + Point at which to test + Direction to test derivative + Whether to disable output + This is a reusable working buffer for intermediate calculations + This is a reusable working buffer for intermediate calculations + Normalized difference between analytic and numeric directional derivative + + + + Orthant-Wise Limited-memory Quasi-Newton algorithm + for optimization of smooth convex objectives plus L1-regularization + If you use this code for published research, please cite + Galen Andrew and Jianfeng Gao, "Scalable Training of L1-Regularized Log-Linear Models", ICML 2007 + + + + + Create an L1Optimizer with the supplied value of M and termination criterion + + The environment + Number of biases + Weight of L1 regularizer + The number of previous iterations to store + Whether the optimizer will keep its internal state dense + Termination criterion + The flag enforcing the non-negativity constraint + + + + Contains information about the state of the optimizer + + + + + This is the original differentiable function with the injected L1 term. + + + + + Backtracking line search with Armijo-like condition, from Andrew & Gao + + + + + Line search that does not use derivatives + + + + + Finds a local minimum of the function + + Function to minimize + Minimizing value + + + + Delegate for differentiable 1-D functions + + Point to evaluate + Derivative at that point + + + + + Line search that uses derivatives + + + + + Finds a local minimum of the function + + Function to minimize + Value of function at 0 + Derivative of function at 0 + Minimizing value + + + + Cubic interpolation line search + + + + + Gets or sets maximum number of steps. + + + + + Gets or sets the minimum relative size of bounds around solution. + + + + + Gets or sets maximum step size + + + + + Makes a CubicInterpLineSearch + + Maximum number of steps before terminating + + + + Makes a CubicInterpLineSearch + + Minimum relative size of bounds around solution + + + + Cubic interpolation routine from Nocedal and Wright + + first point, with value and derivative + second point, with value and derivative + local minimum of interpolating cubic polynomial + + + + Finds a local minimum of the function + + Function to minimize + Value of function at 0 + Derivative of function at 0 + Minimizing value + + + + Finds local minimum with golden section search. + + + + + Gets or sets maximum number of steps before terminating. + + + + + Gets or sets minimum relative size of bounds around solution. + + + + + Gets or sets maximum step size. + + + + + Makes a new GoldenSectionSearch + + Maximum number of steps before terminating (not including bracketing) + + + + Makes a new GoldenSectionSearch + + Minimum relative size of bounds around solution + + + + Finds a local minimum of the function + + Function to minimize + Value of function at 0 + Derivative of function at 0 + Minimizing value + + + + Finds a local minimum of the function + + Function to minimize + Minimizing value + + + + Finds a local minimum of the function + + Function to minimize + Minimizing value + + + + Backtracking line search with Armijo condition + + + + + Makes a backtracking line search + + Parameter for Armijo condition + + + + Finds a local minimum of the function + + Function to minimize + Value of function at 0 + Derivative of function at 0 + Minimizing value + + + + An object which is used to decide whether to stop optimization. + + + + + Name appropriate for display to the user. + + + + + Determines whether to stop optimization + + the state of the optimizer + a message to be printed (or null for no message) + true iff criterion is met, i.e. optimization should halt + + + + Prepares the ITerminationCriterion for a new round of optimization + + + + + A wrapper for a termination criterion that checks the gradient at a specified interval + + + + + Initializes a new instance of the class. + + The termination criterion + The gradient check interval. + + + + Determines whether to stop optimization + + the state of the optimizer + a message to be printed (or null for no message) + + true iff criterion is met, i.e. optimization should halt + + + + + Prepares the ITerminationCriterion for a new round of optimization + + + + + An abstract partial implementation of ITerminationCriterion for those which do not require resetting + + + + + Determines whether to stop optimization + + the state of the optimizer + a message to be printed (or null for no message) + + true iff criterion is met, i.e. optimization should halt + + + + + Prepares the ITerminationCriterion for a new round of optimization + + + + + Terminates when the geometrically-weighted average improvement falls below the tolerance + + + + + Initializes a new instance of the class. + + The tolerance parameter + The geometric weighting factor. Higher means more heavily weighted toward older values. + Maximum amount of iteration + + + + When criterion drops below this value, optimization is terminated + + + + + Determines whether to stop optimization + + the state of the optimizer + a message to be printed (or null for no message) + + true iff criterion is met, i.e. optimization should halt + + + + + Prepares the ITerminationCriterion for a new round of optimization + + + + + Stops optimization when the average objective improvement over the last + n iterations, normalized by the function value, is small enough. + + + Inappropriate for functions whose optimal value is non-positive, because of normalization + + + + + When criterion drops below this value, optimization is terminated + + + + + Number of previous iterations to store + + + + + Create a MeanRelativeImprovementCriterion + + tolerance level + number of past iterations to average over + Maximum amount of iteration + + + + Returns true if the average objective improvement over the last + n iterations, normalized by the function value, is less than the tolerance + + current state of the optimizer + the current value of the criterion + true if criterion is less than tolerance + + + + String summary of criterion + + summary of criterion + + + + Prepares the ITerminationCriterion for a new round of optimization + + + + + Uses the gradient to determine an upper bound on (relative) distance from the optimum. + + + Works if the objective uses L2 prior (or in general if the hessian H is such + that H > (1 / sigmaSq) * I at all points) + Inappropriate for functions whose optimal value is non-positive, because of normalization + + + + + When criterion drops below this value, optimization is terminated + + + + + Create termination criterion with supplied value of sigmaSq and tolerance + + value of sigmaSq in L2 regularizer + tolerance level + + + + Returns true if the proved bound on the distance from the optimum, + normalized by the function value, is less than the tolerance + + current state of the optimizer + value of criterion + true if criterion is less than tolerance + + + + String summary of criterion + + summary of criterion + + + + Criterion based on the norm of the gradient being small enough + + + Inappropriate for functions whose optimal value is non-positive, because of normalization + + + + + When criterion drops below this value, optimization is terminated + + + + + Create a RelativeNormGradient with the supplied tolerance + + tolerance level + + + + Returns true if the norm of the gradient, divided by the value, is less than the tolerance. + + current state of the optimizer + the current value of the criterion + true iff criterion is less than the tolerance + + + + String summary of criterion + + summary of criterion + + + + Limited-memory BFGS quasi-Newton optimization routine + + + + Based on Nocedal and Wright, "Numerical Optimization, Second Edition" + + + + The host environment to use for reporting progress and exceptions. + + + + + Number of previous iterations to remember for estimate of Hessian. + + + Higher M means better approximation to Newton's method, but uses more memory, + and requires more time to compute direction. The optimal setting of M is problem + specific, depending on such factors as how expensive is function evaluation + compared to choosing the direction, how easily approximable is the function's + Hessian, etc. + M = 15..20 is usually reasonable but if necessary even M=2 is better than + gradient descent + + + + + Gets or sets a bound on the total number of bytes allowed. + If the whole application is using more than this, no more vectors will be allocated. + + + + + Create an optimizer with the supplied value of M and termination criterion + + The host environment + The number of previous iterations to store + Whether the optimizer will keep its internal state dense + Termination criterion, defaults to MeanRelativeImprovement if null + The flag enforcing the non-negativity constraint + + + + A class for exceptions thrown by the optimizer. + + + + + The state of the optimizer when premature convergence happened. + + + + + Contains information about the state of the optimizer + + + + + The dimensionality of the function + + + + + The function being optimized + + + + + The current point being explored + + + + + The gradient at the current point + + + + + The direction of search that led to the current point + + + + + The current function value + + + + + The function value at the last point + + + + + The number of iterations so far + + + + + The number of completed gradient calculations in the current iteration. + + This is updated in derived classes, since they may call Eval at different times. + + + + Whether the optimizer state will keep its internal vectors dense or not. + This being true may lead to reduced load on the garbage collector, at the + cost of possibly higher overall memory utilization. + + + + + Convenience function to construct a working vector of length Dim. + + + + + + An implementation of the line search for the Wolfe conditions, from Nocedal & Wright + + + + + Cubic interpolation routine from Nocedal and Wright + + first point, with value and derivative + second point, with value and derivative + local minimum of interpolating cubic polynomial + + + + Minimize a function using the MeanRelativeImprovement termination criterion with the supplied tolerance level + + The function to minimize + The initial point + Convergence tolerance (smaller means more iterations, closer to exact optimum) + The point at the optimum + The optimum function value + Thrown if successive points are within numeric precision of each other, but termination condition is still unsatisfied. + + + + Minimize a function. + + The function to minimize + The initial point + The point at the optimum + The optimum function value + Thrown if successive points are within numeric precision of each other, but termination condition is still unsatisfied. + + + + Minimize a function using the supplied termination criterion + + The function to minimize + The initial point + termination criterion to use + The point at the optimum + The optimum function value + Thrown if successive points are within numeric precision of each other, but termination condition is still unsatisfied. + + + + This exception is thrown if successive differences between points + reach the limits of numerical stability, but the termination condition + still hasn't been satisfied + + + + + Makes a PrematureConvergenceException with the supplied message + + The OptimizerState when the exception was thrown + message for exception + + + + If true, suppresses all output. + + + + + Delegate for functions that determine whether to terminate search. Called after each update. + + Current iterate + True if search should terminate + + + + Stochastic gradient descent with variations (minibatch, momentum, averaging). + + + + + Size of minibatches + + + + + Momentum parameter + + + + + Base of step size schedule s_t = 1 / (t0 + f(t)) + + + + + Termination criterion + + + + + If true, iterates are averaged + + + + + Gets/Sets rate schedule type + + + + + Gets/Sets maximum number of steps. Set to 0 for no max + + + + + Annealing schedule for learning rate + + + + + r_t = 1 / t0 + + + + + r_t = 1 / (t0 + sqrt(t)) + + + + + r_t = 1 / (t0 + t) + + + + + Creates SGDOptimizer and sets optimization parameters + + Termination criterion + Annealing schedule type for learning rate + If true, all iterates are averaged + Base for learning rate schedule + Average this number of stochastic gradients for each update + Momentum parameter + Maximum number of updates (0 for no max) + + + + Delegate for functions to query stochastic gradient at a point + + Point at which to evaluate + Vector to be filled in with gradient + + + + Minimize the function represented by . + + Stochastic gradients of function to minimize + Initial point + Approximate minimum of + + + + Deterministic gradient descent with line search + + + + + Line search to use. + + + + + Gets/Sets maximum number of steps. Set to 0 for no max. + + + + + Gets/sets termination criterion. + + + + + Gets/sets whether to use nonlinear conjugate gradient. + + + + + Makes a new GDOptimizer with the given optimization parameters + + Termination criterion + Line search to use + Maximum number of updates + Use Cubic interpolation line search or Backtracking line search with Armijo condition + + + + Finds approximate minimum of the function + + Function to minimize + Initial point + Approximate minimum + + + + Terminates the optimization if NA value appears in result or no progress is made. + + + + + Test whether the optimization should terminate. Returns true if x contains NA or +/-Inf or x equals xprev. + + The current value. + The value from the previous iteration. + True if the optimization routine should terminate at this iteration. + + + + Collection of extension methods for , + , and + to create + instances of trainer components. + + + + + Create , which predicts a target using a linear classification model. + Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. + + The binary classification catalog trainer object. + The name of the label column, or dependent variable. The column data must be . + The features, or independent variables. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The maximum number of passes through the training dataset; set to 1 to simulate online learning. + The initial learning rate used by SGD. + The L2 weight for regularization. + + + + + + + + + Create with advanced options, which predicts a target using a linear classification model. + Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. + + The binary classification catalog trainer object. + Trainer options. + + + + + + + + + Create , which predicts a target using a linear classification model. + Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. + + The binary classification catalog trainer object. + The name of the label column, or dependent variable. The column data must be . + The features, or independent variables. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The loss function minimized in the training process. Using, for example, leads to a support vector machine trainer. + The maximum number of passes through the training dataset; set to 1 to simulate online learning. + The initial learning rate used by SGD. + The L2 weight for regularization. + + + + + + + + + Create with advanced options, which predicts a target using a linear classification model. + Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. + + The binary classification catalog trainer object. + Trainer options. + /// + + + + + + + + Create , which predicts a target using a linear regression model. + + The regression catalog trainer object. + The name of the label column. The column data must be + The name of the feature column. The column data must be a known-sized vector of + The name of the example weight column (optional). + The loss function minimized in the training process. Using, for example, its default leads to a least square trainer. + The L2 weight for regularization. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + + + + + Create with advanced options, which predicts a target using a linear regression model. + + The regression catalog trainer object. + Trainer options. + + + + + + + + Create , which predicts a target using a linear classification model. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The L2 weight for regularization. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + + + + + Create with advanced options, which predicts a target using a linear classification model. + + The binary classification catalog trainer object. + Trainer options. + + + + + + + + Create , which predicts a target using a linear classification model. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The loss function minimized in the training process. Defaults to if not specified. + The L2 weight for regularization. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + + + + + Create with advanced options, which predicts a target using a linear classification model trained over boolean label data. + + The binary classification catalog trainer object. + Trainer options. + + + + + + + + Create , which predicts a target using a maximum entropy classification model trained with a coordinate descent method. + + The multiclass classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The L2 weight for regularization. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + + + + + Create with advanced options, which predicts a target using a maximum entropy classification model trained with a coordinate descent method. + + The multiclass classification catalog trainer object. + Trainer options. + + + + + + + + Create , which predicts a target using a linear multiclass classification model trained with a coordinate descent method. + + The multiclass classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The loss function to be minimized. Defaults to if not specified. + The L2 weight for regularization. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The maximum number of passes to perform over the data. + + + + + + + + Create with advanced options, which predicts a target using a linear multiclass classification model trained with a coordinate descent method. + + The multiclass classification catalog trainer object. + Trainer options. + + + + + + + + Create an , which predicts a target using a linear binary classification model trained over boolean label data. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The loss function minimized in the training process. If , would be used and lead to a max-margin averaged perceptron trainer. + The initial learning rate used by SGD. + + to decrease the as iterations progress; otherwise, . + Default is . + + The L2 weight for regularization. + Number of passes through the training dataset. + + + + + + + + + Create an with advanced options, which predicts a target using a linear binary classification model trained over boolean label data. + + The binary classification catalog trainer object. + Trainer options. + + + + + + + + + Create , which predicts a target using a linear regression model. + + The regression catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The loss function minimized in the training process. Using, for example, leads to a least square trainer. + The initial learning rate used by SGD. + Decrease learning rate as iterations progress. + The L2 weight for regularization. + The number of passes through the training dataset. + + + + + + + + + Create using advanced options, which predicts a target using a linear regression model. + + The regression catalog trainer object. + Trainer options. + + + + + + + + + Create , which predicts a target using a linear binary classification model trained over boolean label data. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + Enforce non-negative weights. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The L2 weight for regularization. + Memory size for . Low=faster, less accurate. + Threshold for optimizer convergence. + + + + + + + + + Create with advanced options, which predicts a target using a linear binary classification model trained over boolean label data. + + The binary classification catalog trainer object. + Advanced arguments to the algorithm. + + + + + + + + + Create , which predicts a target using a linear regression model. + + The regression catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The L2 weight for regularization. + Threshold for optimizer convergence. + Number of previous iterations to remember for estimating the Hessian. Lower values mean faster but less accurate estimates. + Enforce non-negative weights. + + + + + + + + Create using advanced options, which predicts a target using a linear regression model. + + The regression catalog trainer object. + Trainer options. + + + + + + + + Create , which predicts a target using a maximum entropy classification model trained with the L-BFGS method. + + The . + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + Enforce non-negative weights. + The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. + The L2 weight for regularization. + Memory size for . Low=faster, less accurate. + Threshold for optimizer convergence. + + + + + + + + Create with advanced options, which predicts a target using a maximum entropy classification model trained with the L-BFGS method. + + The . + Advanced arguments to the algorithm. + + + + + + + + Create a , which predicts a multiclass target using a Naive Bayes model + that supports binary feature values. + + The . + The name of the label column. + The name of the feature column. + + + + + + + + Works via the shim interface to extract from the calibrating training + estimator the internal object. Note that this should be a temporary measure, + since the trainers should really be changed to actually work over estimators. + + The exception context. + The estimator out of which we should try to extract the calibrator trainer. + The calibrator trainer. + + + + Create a , which predicts a multiclass target using one-versus-all strategy with + the binary classification estimator specified by . + + + + In one-versus-all strategy, a binary classification algorithm is used to train one classifier for each class, + which distinguishes that class from all other classes. Prediction is then performed by running these binary classifiers, + and choosing the prediction with the highest confidence score. + + + The multiclass classification catalog trainer object. + An instance of a binary used as the base trainer. + The calibrator. If a calibrator is not explicitly provided, it will default to + The name of the label column. + Whether to treat missing labels as having negative labels, instead of keeping them missing. + Number of instances to train the calibrator. + Use probabilities (vs. raw outputs) to identify top-score category. + The type of the model. This type parameter will usually be inferred automatically from . + + + + + + + + Create a , which predicts a multiclass target using pairwise coupling strategy with + the binary classification estimator specified by . + + + + In the Pairwise coupling (PKPD) strategy, a binary classification algorithm is used to train one classifier for each pair of classes. + Prediction is then performed by running these binary classifiers, and computing a score for each class by counting how many of the binary + classifiers predicted it. The prediction is the class with the highest score. + + + The multiclass classification catalog trainer object. + An instance of a binary used as the base trainer. + The calibrator. If a calibrator is not explicitly provided, it will default to + The name of the label column. + Whether to treat missing labels as having negative labels, instead of keeping them missing. + Number of instances to train the calibrator. + The type of the model. This type parameter will usually be inferred automatically from . + + + + + + + + Create , which predicts a target using a linear binary classification model trained + over boolean label data. + + The binary classification catalog trainer object. + The name of the label column. The column data must be . + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The number of training iteration. + + + + + + + + Create with advanced options, which predicts a target using a linear binary classification model + trained over boolean label data. + + The binary classification catalog trainer object. + Trainer options. + + + + + + + + Create , which predicts a target using a binary classification model. + + + This trainer uses the proportion of a label in the training set as the probability of that label. + This trainer is often used as a baseline for other more sophisticated mdels. + + The . + The name of the label column. + The name of the example weight column (optional). + + + + + + + + Create with advanced options, which predicts a target using a Local Deep SVM model. + + The . + Trainer options. + + + + + + + + Create , which predicts a target using a Local Deep SVM model. + + The . + The name of the label column. + The name of the feature column. The column data must be a known-sized vector of . + The name of the example weight column (optional). + The number of iterations. + The depth of a Local Deep SVM tree. + Indicates if the model should have a bias term. + Indicates whether we should iterate over the data using a cache. + + + + + + + diff --git a/W/Debug_Folder/Microsoft.ML.Transforms.dll b/W/Debug_Folder/Microsoft.ML.Transforms.dll new file mode 100644 index 000000000..422672d54 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.Transforms.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.Transforms.xml b/W/Debug_Folder/Microsoft.ML.Transforms.xml new file mode 100644 index 000000000..361a506f6 --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.Transforms.xml @@ -0,0 +1,7777 @@ + + + + Microsoft.ML.Transforms + + + + + Collection of extension methods for to create categorical + transformer components. + + + + + Create a , which converts the input column specified by + into a column of one-hot encoded vectors named . + + The transform catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of if is + , , and . + If is , this column's data type will be a key in the case of a scalar input column + or a vector of keys in the case of a vector input column. + Name of column to convert to one-hot vectors. If set to , the value of the + will be used as source. This column's data type can be scalar or vector of numeric, text, boolean, or , + Output kind: Bag (multi-set vector), Indicator (indicator vector), Key (index), or Binary encoded indicator vector. + Maximum number of terms to keep per column when auto-training. + How items should be ordered when vectorized. If + choosen they will be in the order encountered. If , + items are sorted according to their default comparison, for example, text sorting will be case sensitive (for example, 'A' then 'Z' then 'a'). + Specifies an ordering for the encoding. If specified, this should be a single column data view, + and the key-values will be taken from that column. If unspecified, the ordering will be determined from the input data upon fitting. + + + + + + + + Create a , which converts one or more input text columns specified in + into as many columns of one-hot encoded vectors. + + If multiple columns are passed to the estimator, all of the columns will be processed in a single pass over the data. + Therefore, it is more efficient to specify one estimator with many columns than it is to specify many estimators each with a single column. + The transform catalog. + The pairs of input and output columns. The output columns' data type will be a vector of if is + , , and . + If is , the output columns' data type will be a key in the case of scalar input column + or a vector of keys in the case of a vector input column. + Output kind: Bag (multi-set vector), Ind (indicator vector), Key (index), or Binary encoded indicator vector. + Maximum number of terms to keep per column when auto-training. + How items should be ordered when vectorized. If + choosen they will be in the order encountered. If , + items are sorted according to their default comparison, for example, text sorting will be case sensitive (for example, 'A' then 'Z' then 'a'). + Specifies an ordering for the encoding. If specified, this should be a single column data view, + and the key-values will be taken from that column. If unspecified, the ordering will be determined from the input data upon fitting. + + + + + + + + Convert several text column into one-hot encoded vectors. + + The transform catalog + The column settings. + + + + Convert several text column into one-hot encoded vectors. + + The transform catalog + The column settings. + Specifies an ordering for the encoding. If specified, this should be a single column data view, + and the key-values will be taken from that column. If unspecified, the ordering will be determined from the input data upon fitting. + + + + Create a , which converts a text column specified by + into a hash-based one-hot encoded vector column named . + + The transform catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of if is + , , and . + If is , this column's data type will be a key in the case of a scalar input column + or a vector of keys in the case of a vector input column. + Name of column to transform. If set to , the value of the will be used as source. + This column's data type can be scalar or vector of numeric, text, boolean, or . + The conversion mode. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Hashing seed. + Whether the position of each term should be included in the hash. + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + + + + + Create a , which converts one or more input text columns specified by + into as many columns of hash-based one-hot encoded vectors. + + If multiple columns are passed to the estimator, all of the columns will be processed in a single pass over the data. + Therefore, it is more efficient to specify one estimator with many columns than it is to specify many estimators each with a single column. + + The transform catalog + The pairs of input and output columns. The output columns' data type will be a vector of if is + , , and . + If is , the output columns' data type will be a key in the case of scalar input column + or a vector of keys in the case of a vector input column. + The conversion mode. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Hashing seed. + Whether the position of each term should be included in the hash. + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column. Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + + + + + Convert several text column into hash-based one-hot encoded vectors. + + The transform catalog + The column settings. + + + + Selects the slots for which the count of non-default values is greater than or equal to a threshold. + + + , or [text](xref:Microsoft.ML.Data.TextDataViewType) data types| + | Output column data type | Same as the input column| + | Exportable to ONNX | Yes | + + This transform uses a set of aggregators to count the number of values for each slot (vector element) + that are non-default and non-missing (for the definitions of default and missing, refer to the remarks section + in ). If the count value is less than the provided count parameter, that slot is dropped. + This transform is useful when applied together with a . + It can remove the features generated by the hash transform that have no data in the examples. + + For example, if we set the count parameter to 3 and fit the estimator, apply the transformer to the following Features column, + we would see the second slot, containing: NaN (missing value), 5, 5, 0 (default value) values being dropped because that slot + has only two non-default and non-missing values, i.e. the two 5 values. + The third slot is being kept, because it has the values 6, 6, 6, NaN; so it has 3 non-default and non-missing. + + | Features | + | -- | + |4,NaN,6 | + |4,5,6 | + |4,5,6 | + |4,0,NaN| + + This is how the dataset above would look, after the transformation. + + | Features | + | -- | + |4,6 | + |4,6 | + |4,6 | + |4,NaN| + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Describes how the transformer handles one column pair. + + + + Name of the column resulting from the transformation of . + + + Name of the column to transform. + + + If the count of non-default values for a slot is greater than or equal to this threshold in the training data, the slot is preserved. + + + + Describes the parameters of the feature selection process for a column pair. + + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + If the count of non-default values for a slot is greater than or equal to this threshold in the training data, the slot is preserved. + + + + + Selects the slots for which the count of non-default values is greater than or equal to a threshold. + + + + This transform uses a set of aggregators to count the number of non-default values for each slot and + instantiates a to actually drop the slots. + This transform is useful when applied together with a . + The count feature selection can remove those features generated by the hash transform that have no data in the examples. + + + + The environment to use. + Describes the parameters of the feature selection process for each column pair. + + + + + + + + + + Selects the slots for which the count of non-default values is greater than or equal to a threshold. + + + + This transform uses a set of aggregators to count the number of non-default values for each slot and + instantiates a to actually drop the slots. + This transform is useful when applied together with a . + The count feature selection can remove those features generated by the hash transform that have no data in the examples. + + + + The environment to use. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + If the count of non-default values for a slot is greater than or equal to this threshold in the training data, the slot is preserved. + + + + + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + + Create method corresponding to SignatureDataTransform. + + + + + Returns the feature selection scores for each slot of each column. + + The host environment. + The input dataview. + The columns for which to compute the feature selection scores. + Outputs an array containing the vector sizes of the input columns + A list of scores. + + + + Place this attribute onto a type to cause it to be considered a custom mapping factory. + + + + + The base type for custom mapping factories. + + The type that describes what 'source' columns are consumed from the input . + The type that describes what new columns are added by this transform. + + + + Returns the mapping delegate that maps from inputs to outputs. + + + + + The base type for stateful custom mapping factories. + + The type that describes what 'source' columns are consumed from the input . + The type that describes what new columns are added by this transform. + The type that describes the state object the mapping uses. + + + + Returns the mapping delegate that maps from a input and a state object of type , + to a output. + + + + + Returns an action that is called once before the row cursor is initialized, to initialize the state object used by the cursor. + + + + + resulting from fitting an . + + The type that describes what 'source' columns are consumed from the input . + The type that describes what new columns are added by this transform. + + + + Whether a call to should succeed, on an + appropriate schema. + + + + + Create a custom mapping of input columns to output columns. + + The host environment + The action by which we map source to destination columns + The name of the action (will be saved to the model). + Additional parameters for schema mapping between and input data. + Additional parameters for schema mapping between and output data. + + + + Returns the which would be produced by the transformer applied to + an input data with schema . + + + + + Take the data in, make transformations, output the data. + Note that 's are lazy, so no actual transformations happen here, just schema validation. + + + + + Constructs a row-to-row mapper based on an input schema. If + is false, then an exception is thrown. If the is in any way + unsuitable for constructing the mapper, an exception is likewise thrown. + + + + + Applies a custom mapping function to the specified input columns. The result will be in output columns. + + + applies a user defined mapping + to one or more input columns and produces one or more output columns. This transformation doesn't change the number of rows, + and can be seen as the result of applying the user's function to every row of the input data. + + The provided custom function must be thread-safe and free from side effects. + The order with which it is applied to the rows of data cannot be guaranteed. + + Check the See Also section for links to usage examples. + ]]> + + + + + + Create a custom mapping of input columns to output columns. + + The host environment + The mapping action. This must be thread-safe and free from side effects. + The contract name, used by ML.NET for loading the model. If null is specified, such a trained model would not be save-able. + Additional parameters for schema mapping between and input data. + Additional parameters for schema mapping between and output data. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Populate the array with the counts for the input key + + + + + Garbage threshold the table is using + + + + + Signature for CountTableBuilder. + + + + + Builds a table that provides counts to the + by going over the training data. + + + + + Create a builder that creates the count table using the count-min sketch structure, which has a smaller memory footprint, + at the expense of some possible overcounting due to collisions. + + The depth of the count-min sketch table. + The width of the count-min sketch table. + + + + Create a builder that creates the count table by building a dictionary containing the exact count of each + categorical feature value. + + The garbage threshold (counts below or equal to the threshold are assigned to the garbage bin). + + + + Transforms a categorical column into a set of features that includes the count of each label class, + the log-odds for each label class and the back-off indicator. + + + . | + + The resulting creates a new column, named as specified in the output column name parameters, + containing three parts: the count of each label class, the log-odds for each label class and the back-off indicator. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + + + This is a merger of arguments for and + + + + + resulting from fitting a or . + + + + + Transforms a categorical column into a set of features that includes the count of each label class, + the log-odds for each label class and the back-off indicator. + + The transforms catalog. + The input and output columns. + The name of the label column. + The builder that creates the count tables from the training data. + The coefficient with which to apply the prior smoothing to the features. + The Laplacian noise diversity/scale-parameter. Recommended values are between 0 and 1. Note that the noise + will only be applied if the estimator is part of an , when fitting the next estimator in the chain. + Indicates whether to keep counts for all columns and slots in one shared count table. If true, the keys in the count table + will include a hash of the column and slot indices. + The number of bits to hash the input into. Must be between 1 and 31, inclusive. + In case the input is a vector column, indicates whether the values should be combined into a single hash to create a single + count table, or be left as a vector of hashes with multiple count tables. + The seed used for hashing the input columns. + + + + + Transforms a categorical column into a set of features that includes the count of each label class, + the log-odds for each label class and the back-off indicator. + + The transforms catalog. + The input and output columns. + A previously trained count table containing initial counts. + The name of the label column. + + + + + Transforms a categorical column into a set of features that includes the count of each label class, + the log-odds for each label class and the back-off indicator. + + The transforms catalog. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The name of the label column. + The builder that creates the count tables from the training data. + The coefficient with which to apply the prior smoothing to the features. + The Laplacian noise diversity/scale-parameter. Recommended values are between 0 and 1. Note that the noise + will only be applied if the estimator is part of an , when fitting the next estimator in the chain. + The number of bits to hash the input into. Must be between 1 and 31, inclusive. + In case the input is a vector column, indicates whether the values should be combined into a single hash to create a single + count table, or be left as a vector of hashes with multiple count tables. + The seed used for hashing the input columns. + + + + Transforms a categorical column into a set of features that includes the count of each label class, + the log-odds for each label class and the back-off indicator. + + The transforms catalog. + Name of the column resulting from the transformation of . + A previously trained count table containing initial counts. + Name of the column to transform. If set to , the value of the will be used as source. + The name of the label column. + + + + + Handles simultaneous counting for multiple columns and slots. Incapsulates the counting strategy: + either keep everything in one big count table, or have a count table per column and slot + + + + + Incapsulates count tables (or one count table) for multiple columns and slots. + Handles (de)serialization and featurization. + + + + + Implements the multi count table builder logic by keeping a count table per column and per slot + + + + + Implements the multi count table builder by creating one count table for everything + + + + + Mixes the column and slot index into the key, and then passes it to the wrapped count table + + + + + Entry points for text anylytics transforms. + + + + + resulting from fitting a . + + + + + Provide details about the topics discovered by LightLDA. + + + + + Method to provide details about the topics discovered by LightLDA + + index of column options pair + + + + + Initializes a new object. + + Host Environment. + An array of LdaState objects, where ldas[i] is learnt from the i-th element of . + A list of mappings, where columnMapping[i] is a map of slot names for the i-th element of . + Describes the parameters of the LDA process for each column pair. + + + + The LDA transform implements LightLDA, a state-of-the-art implementation of Latent Dirichlet Allocation. + + + | + | Output column data type | Vector of | + | Exportable to ONNX | No | + + Latent Dirichlet Allocation is a well-known [topic modeling](https://en.wikipedia.org/wiki/Topic_model) algorithm that infers semantic structure from text data, + and ultimately helps answer the question on "what is this document about?". + It can be used to featurize any text fields as low-dimensional topical vectors. + LightLDA is an extremely efficient implementation of LDA that incorporates a number of + optimization techniques. + With the LDA transform, ML.NET users can train a topic model to produce 1 million topics with 1 million words vocabulary + on a 1-billion-token document set one a single machine in a few hours(typically, LDA at this scale takes days and requires large clusters). + The most significant innovation is a super-efficient $O(1)$. [Metropolis-Hastings sampling algorithm](https://en.wikipedia.org/wiki/Metropolis–Hastings_algorithm), + whose running cost is agnostic of model size, allowing it to converges nearly an order of magnitude faster than other [Gibbs samplers](https://en.wikipedia.org/wiki/Gibbs_sampling). + + In an ML.NET pipeline, this estimator requires the output of some preprocessing, as its input. + A typical pipeline operating on text would require text normalization, tokenization and producing n-grams to supply to the LDA estimator. + See the example usage in the See Also section for usage suggestions. + + If we have the following three examples of text, as data points, and use the LDA transform with the number of topics set to 3, + we would get the results displayed in the table below. Example documents: + * I like to eat bananas. + * I eat bananas everyday. + * First celebrated in 1970, Earth Day now includes events in more than 193 countries, + which are now coordinated globally by the Earth Day Network. + + Notice the similarity in values of the first and second row, compared to the third, + and see how those values are indicative of similarities between those two (small) bodies of text. + + | Topic1 | Topic2 | Topic 3 | + | ------- | ------- | ------- | + | 0.5714 | 0.0000 | 0.4286 | + | 0.5714 | 0.0000 | 0.4286 | + | 0.2400 | 0.3200 | 0.4400 | + + For more technical details you can consult the following papers. + * [LightLDA: Big Topic Models on Modest Computer Clusters](https://arxiv.org/abs/1412.1576) + * [LightLDA](https://github.com/Microsoft/LightLDA) + + Check the See Also section for links to usage examples. + ]]> + + + + + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The number of topics. + Dirichlet prior on document-topic vectors. + Dirichlet prior on vocab-topic vectors. + Number of Metropolis Hasting step. + Number of iterations. + The number of training threads. Default value depends on number of logical processors. + The threshold of maximum count of tokens per doc. + The number of words to summarize the topic. + Compute log likelihood over local dataset on this iteration interval. + The number of burn-in iterations. + Reset the random number generator for each document. + Whether to output the topic-word summary in text format when saving the model to disk. + + + + The environment. + Describes the parameters of the LDA process for each column pair. + + + + Describes how the transformer handles one column pair. + + + + + Name of the column resulting from the transformation of . + + + + + Name of column to transform. + + + + + The number of topics. + + + + + Dirichlet prior on document-topic vectors. + + + + + Dirichlet prior on vocab-topic vectors. + + + + + Number of Metropolis Hasting step. + + + + + Number of iterations. + + + + + Compute log likelihood over local dataset on this iteration interval. + + + + + The number of training threads. + + + + + The threshold of maximum count of tokens per doc. + + + + + The number of words to summarize the topic. + + + + + The number of burn-in iterations. + + + + + Reset the random number generator for each document. + + + + + Whether to output the topic-word summary in text format when saving the model to disk. + + + + + Describes how the transformer handles one column pair. + + The column containing the output scores over a set of topics, represented as a vector of floats. + The column representing the document as a vector of floats.A null value for the column means is replaced. + The number of topics. + Dirichlet prior on document-topic vectors. + Dirichlet prior on vocab-topic vectors. + Number of Metropolis Hasting step. + Number of iterations. + Compute log likelihood over local dataset on this iteration interval. + The number of training threads. Default value depends on number of logical processors. + The threshold of maximum count of tokens per doc. + The number of words to summarize the topic. + The number of burn-in iterations. + Reset the random number generator for each document. + Whether to output the topic-word summary in text format when saving the model to disk. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + resulting from fitting a . + + + + Constructor for case where you don't need to 'train' transform on data, for example, MaximumNumberOfInverts for all columns set to zero. + + Host Environment. + Description of dataset columns and how to process them. + + + + for the . + + + | + | Exportable to ONNX | No | + + The resulting creates a new column, named as specified in the output column name parameters, and + produces a vector of n-gram counts (sequences of consecutive words of length 1-n) from a given data. + It does so by hashing each n-gram and using the hash value as the index in the bag. + + is different from + in a way that The former takes tokenized text as input while the latter tokenizes text internally. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Describes how the transformer handles one pair of mulitple inputs - singular output columns. + + + + Name of the column resulting from the transformation of . + + + Names of the columns to transform. + + + Maximum n-gram length. + + + Maximum number of tokens to skip when constructing an n-gram. + + + Whether to store all n-gram lengths up to , or only . + + + Number of bits to hash into. Must be between 1 and 31, inclusive. + + + Hashing seed. + + + Whether the position of each term should be included in the hash. + + + + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column. + Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Whether to rehash unigrams. + + + + Describes how the transformer maps several input columns, , to a output column, . + + Name of the column resulting from the transformation of . + Names of the columns to transform. + Maximum n-gram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to store all n-gram lengths up to , or only . + Number of bits to hash into. Must be between 1 and 31, inclusive. + Hashing seed. + Whether the position of each term should be included in the hash. + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column. + Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + Whether to rehash unigrams. + + + + Produces a bag of counts of hashed n-grams in + and outputs n-gram vector as + + is different from in a way that + takes tokenized text as input while tokenizes text internally. + + The environment. + Name of output column, will contain the n-gram vector. Null means is replaced. + Name of input column containing tokenized text. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Produces a bag of counts of hashed n-grams in + and outputs n-gram vector as + + is different from in a way that + takes tokenized text as input while tokenizes text internally. + + The environment. + Name of output column, will contain the n-gram vector. + Name of input columns containing tokenized text. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Produces a bag of counts of hashed n-grams in + and outputs n-gram vector for each output in + + is different from in a way that + takes tokenized text as input while tokenizes text internally. + + The environment. + Array of columns which specifies the behavior of the transformation. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + + resulting from fitting an . + + + + + Produces a vector of counts of n-grams (sequences of consecutive words) encountered in the input text. + + + | + | Exportable to ONNX | Yes | + + The resulting + creates a new column, named as specified in the output column name parameters, where each + input vector is mapped to a vector of counts of n-grams (sequences of consecutive words) encountered in the input text. + + The estimator builds a dictionary of n-grams and the + uses the id in the dictionary as the index in the count vector that it produces. + + Check the See Also section for links to usage examples. + ]]> + + + + + + A statistical measure used to evaluate how important a word is to a document in a corpus. + This enumeration is serialized. + + + + Term Frequency. Calculated based on the number of occurrences in the document. + + + + Inverse Document Frequency. A ratio (the logarithm of inverse relative frequency) + that measures the information a slot provides by determining how common or rare it is across the entire corpus. + + + + The product of the term frequency and the inverse document frequency. + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector as + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector for each output in + + The environment. + Pairs of columns to compute bag of word vector. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector for each output in + + The environment. + Array of columns with information how to transform data. + + + + Trains and returns a . + + + + + Describes how the transformer handles one column pair. + + + + Name of the column resulting from the transformation of . + + + Name of column to transform. + + + Maximum n-gram length. + + + Maximum number of tokens to skip when constructing an n-gram. + + + Whether to store all n-gram lengths up to ngramLength, or only ngramLength. + + + The weighting criteria. + + + + Underlying state of . + + + + + Contains the maximum number of terms (that is, n-grams) to store in the dictionary, for each level of n-grams, + from n=1 (in position 0) up to n= (in position -1) + + + + + Describes how the transformer handles one Gcn column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Maximum n-gram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to store all n-gram lengths up to ngramLength, or only ngramLength. + The weighting criteria. + Maximum number of n-grams to store in the dictionary. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Uses a pretrained sentiment model to score input strings. + + The Sentiment transform returns the probability that the sentiment of a natural text is positive. + + The model was trained with the Sentiment-specific word embedding (SSWE) and NGramFeaturizer on Twitter sentiment data, + similarly to the sentiment analysis part of the + Text Analytics cognitive service. + The transform outputs a score between 0 and 1 as a sentiment prediction + (where 0 is a negative sentiment and 1 is a positive sentiment). + Currently it supports only English. + + + + + If any column names in are present in , this + method will create a transform that copies them to temporary columns. It will populate + with an array of string pairs containing the original name and the generated temporary column name, respectively. + + + + + + resulting from fitting a . + + + + + Defines the behavior of the transformer. + + + + + Stopword remover removes language-specific list of stop words (most common words). + + The environment. + Pairs of columns to remove stop words from. + + + + for the . + + + creates a new column, named as specified in the output column name parameter, + and fills it with a vector of words containing all of the words in the input column **except the predefined list of stopwords for the specified language. + All text comparison made by casting predefined text and text from input column to lower case using casing rules of invariant culture. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Use stop words remover that can remove language-specific list of stop words (most common words) already defined in the system. + + + + + Language of the text dataset. 'English' is default. + + + + + Describes how the transformer handles one column pair. + + + + Name of the column resulting from the transformation of . + + + Name of the column to transform. + + + Language-specific stop words list. + + + Optional column to use for languages. This overrides language value. + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Language-specific stop words list. + Optional column to use for languages. This overrides language value. + + + + Stopwords language. This enumeration is serialized. + + + + + Removes stop words from incoming token streams in + and outputs the token streams without stopwords as . + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Langauge of the input text column . + + + + Removes stop words from incoming token streams in input columns + and outputs the token streams without stop words as output columns. + + The environment. + Pairs of columns to remove stop words on. + Langauge of the input text columns . + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + The names of the input output column pairs on which this transformation is applied. + + + + + Custom stopword remover removes specified list of stop words. + + The environment. + Array of words to remove. + Pairs of columns to remove stop words from. + + + + for the . + + + creates a new column, named as specified by the output column name parameter, and + fills it with a vector of words containing all of the words in the input column except those given by the stopwords parameter. + All text comparison made by casting provided words and words from input column to lower case using casing rules of invariant culture. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Use stop words remover that can removes language-specific list of stop words (most common words) already defined in the system. + + + + + List of stop words to remove. + + + + + Removes stop words from incoming token streams in + and outputs the token streams without stopwords as . + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Array of words to remove. + + + + Removes stop words from incoming token streams in input columns + and outputs the token streams without stop words as output columns. + + The environment. + Pairs of columns to remove stop words on. + Array of words to remove. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Defines the different type of stop words remover supported. + + + + + An estimator that turns a collection of text documents into numerical feature vectors. + The feature vectors are normalized counts of word and/or character n-grams (based on the options supplied). + + + | + | Exportable to ONNX | No | + + This estimator gives the user one-stop solution for doing: + * Language Detection + * [Tokenization](https://en.wikipedia.org/wiki/Lexical_analysis#Tokenization) + * [Text normalization](https://en.wikipedia.org/wiki/Text_normalization) + * [Predefined and custom stopwords removal](https://en.wikipedia.org/wiki/Stop_words) + * [Word-based or character-based Ngram extraction and SkipGram extraction (through the advanced [options](xref:Microsoft.ML.Transforms.TextFeaturizingEstimator.Options.WordFeatureExtractor))](https://en.wikipedia.org/wiki/N-gram) + * [TF, IDF or TF-IDF](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) + * [L-p vector normalization](xref: Microsoft.ML.Transforms.LpNormNormalizingTransformer) + + By default the features are made of (word/character) n-grams/skip-grams​ and the number of features are equal to the vocabulary size found by analyzing the data. + To output an additional column with the tokens generated, use [OutputTokensColumnName](xref:Microsoft.ML.Transforms.Text.TextFeaturizingEstimator.Options.OutputTokensColumnName). + The number of features can also be specified by selecting the maximum number of n-gram to keep in the , where the estimator can be further tuned. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Text language. This enumeration is serialized. + + + + + Text vector normalizer kind. + + + + + Use this to disable normalization. + + + + + L1-norm. + + + + + L2-norm. + + + + + Infinity-norm. + + + + + Advanced options for the . + + + + + The underlying state of and . + + + + + Option to set type of stop word remover to use. + The following options are available + + + The removes the language specific list of stop words from the input. + + + The uses user provided list of stop words. + + + Setting this to 'null' does not remove stop words from the input. + + + + + The underlying state of and . + + + + + Norm of the output vector. It will be normalized to one. + + + + + Ngram feature extractor to use for words (WordBag/WordHashBag). + Set to to turn off n-gram generation for words. + + + + + The underlying state of and + + + + + Ngram feature extractor to use for characters (WordBag/WordHashBag). + Set to to turn off n-gram generation for characters. + + + + + A distilled version of the TextFeaturizingEstimator Arguments, with all fields marked readonly and + only the exact set of information needed to construct the transforms preserved. + + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + The names of the output and input column pairs on which the transformation is applied. + + + + + Whether a character is a combining diacritic character or not. + Combining diacritic characters are the set of diacritics intended to modify other characters. + The list is provided by Office NL team. + + + + + for the . + + + creates a new column, named as specified + in the output column name parameters, and normalizes the textual input data by changing case, removing diacritical marks, + punctuation marks and/or numbers. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Case normalization mode of text. This enumeration is serialized. + + + + + Make the output characters lowercased. + + + + + Make the output characters uppercased. + + + + + Do not change the case of output characters. + + + + + Normalizes incoming text in by changing case, removing diacritical marks, punctuation marks and/or numbers + and outputs new text as . + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Casing text using the rules of the invariant culture. + Whether to keep diacritical marks or remove them. + Whether to keep punctuation marks or remove them. + Whether to keep numbers or remove them. + + + + Normalizes incoming text in input columns by changing case, removing diacritical marks, punctuation marks and/or numbers + and outputs new text as output columns. + + The environment. + Casing text using the rules of the invariant culture. + Whether to keep diacritical marks or remove them. + Whether to keep punctuation marks or remove them. + Whether to keep numbers or remove them. + Pairs of columns to run the text normalization on. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + Tokenize incoming text in input columns and output the tokens as output columns. + + The environment. + Whether to prepend a marker character, , to the beginning, + and append another marker character, , to the end of the output vector of characters. + Pairs of columns to run the tokenization on. + + + + The names of the output and input column pairs on which the transformation is applied. + + + + + Get the key values (chars) corresponding to keys in the output columns. + + + + + for the . + + + resulting from fitting the estimator + creates a new column, named as specified in the output column name parameters, which contains the keys of the + sequences of characters that were encountered in the input. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Tokenize incoming text in and output the tokens as . + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Whether to prepend a marker character, , to the beginning, + and append another marker character, , to the end of the output vector of characters. + + + + Tokenize incoming text in input columns and output the tokens as output columns. + + The environment. + Whether to prepend a marker character, , to the beginning, + and append another marker character, , to the end of the output vector of characters. + Pairs of columns to run the tokenization on. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Signature for creating an INgramExtractorFactory. + + + + + A many-to-one column common to both + and . + + + + + Factory method for SignatureLoadModel. + + + + + Factory method for SignatureLoadRowMapper. + + + + + Factory method for SignatureLoadDataTransform. + + + + + A transform that turns a collection of tokenized text (vector of ReadOnlyMemory), or vectors of keys into numerical + feature vectors. The feature vectors are counts of n-grams (sequences of consecutive *tokens* -words or keys- + of length 1-n). + + + + + This class is a merger of and + , with the allLength option removed. + + + + + Arguments for defining custom list of terms or data file containing the terms. + The class includes a subset of 's arguments. + + + + + An n-gram extractor factory interface to create an n-gram extractor transform. + + + + + Whether the extractor transform created by this factory uses the hashing trick + (by using or , for example). + + + + + An implementation of to create . + + + + + An implementation of to create . + + + + + Generates and returns unique names for columns source. Each element of the returned array is + an array of unique source names per specific column. + + + + + resulting from fitting an . + + + + + Instantiates using the pretrained word embedding model specified by . + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The pretrained word embedding model. + + + + Instantiates using the custom word embedding model by loading it from the file specified by the . + + Host Environment. + Name of the column resulting from the transformation of . + Filename for custom word embedding model. + Name of the column to transform. If set to , the value of the will be used as source. + + + + Instantiates using the pretrained word embedding model specified by . + + Host Environment. + The pretrained word embedding model. + Input/Output columns. + + + + Instantiates using the custom word embedding model by loading it from the file specified by the . + + Host Environment. + Filename for custom word embedding model. + Input/Output columns. + + + + Text featurizer which converts vectors of text tokens into a numerical vector using a pre-trained embeddings model. + + + | + | Exportable to ONNX | No | + + The produces a new column, + named as specified in the output column name parameters, where each input vector is mapped to a numerical vector + with size of 3 * dimensionality of the embedding model used. Notice that this is independent of the size of the input vector. + + For example, when using GloVe50D, which itself is 50 dimensional, the output column is a vector of size 150. + The first third of slots contains the minimum values across the embeddings corresponding to each string in the input vector. + The second third contains the average of the embeddings. The last third of slots contains maximum values + of the encountered embeddings. The min/max provides a bounding hyper-rectangle for the words in the word embedding space. + This can assist for longer phrases where the average of many words drowns out the useful signal. + + The user can specify a custom pre-trained embeddings model or one of the available pre-trained models. + The available options are various versions of [GloVe Models](https://nlp.stanford.edu/projects/glove/), + [FastText](https://en.wikipedia.org/wiki/FastText), and [SSWE](https://anthology.aclweb.org/P/P14/P14-1146.pdf). + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Extracts word embeddings. + Output three times more values than dimension of the model specified in + First set of values represent minumum encountered values (for each dimension), second set represent average (for each dimension) + and third one represent maximum encountered values (for each dimension). + + The local instance of + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The embeddings to use. + + + + Extracts word embeddings. + Output three times more values than dimension of the model specified in + First set of values represent minimum encountered values (for each dimension), second set represent average (for each dimension) + and third one represent maximum encountered values (for each dimension). + + The local instance of + Name of the column resulting from the transformation of . + The path of the pre-trained embeddings model to use. + Name of the column to transform. + + + + Extracts word embeddings. + Output three times more values than dimension of the model specified in + First set of values represent minimum encountered values (for each dimension), second set represent average (for each dimension) + and third one represent maximum encountered values (for each dimension). + + The local instance of + The embeddings to use. + The array columns, and per-column configurations to extract embeddings from. + + + + Specifies which word embeddings to use. + + + + + GloVe 50 dimensional word embeddings. + + + + + GloVe 100 dimensional word embeddings. + + + + + GloVe 200 dimensional word embeddings. + + + + + GloVe 300 dimensional word embeddings. + + + + + GloVe 25 dimensional word embeddings trained on Twitter data. + + + + + GloVe 50 dimensional word embeddings trained on Twitter data. + + + + + GloVe 100 dimensional word embeddings trained on Twitter data. + + + + + GloVe 200 dimensional word embeddings trained on Twitter data. + + + + + FastText 300 dimensional word embeddings trained on Wikipedia. + + + + + Word embeddings trained on sentiment analysis tasks. + + + + + Information for each column pair. + + + + + Name of the column resulting from the transformation of . + + + + + Name of column to transform. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to will be used as source. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + + A transform that turns a collection of tokenized text (vector of ReadOnlyMemory) into numerical feature vectors + using the hashing trick. + + + + + This class is a merger of and + , with the ordered option, + the rehashUnigrams option and the allLength option removed. + + + + + resulting from fitting an . + + + + + Tokenizes input text using specified delimiters. + + + creates a new column, + named as specified in the output column name parameters, where each input string is mapped to a vector of substrings obtained + by splitting the input string according to the user defined delimiters. The space character is the default delimiter. + + Empty strings and strings containing only spaces are dropped. + + Check the See Also section for links to usage examples. + ]]> + + + + + + Tokenize incoming text in and output the tokens as . + + The environment. + Name of the column resulting from the transformation of . + The output column is of type variable vector of string. + Name of the column to transform. If set to , the value of the will be used as source. + This column should be of type string. + The separators to use (uses space character by default). + + + + Tokenize incoming text in input columns and output the tokens. + + The environment. + Pairs of columns to run the tokenization on. + The separators to use (uses space character by default). + + + + Tokenize incoming text in input columns and output the tokens. + + The environment. + Pairs of columns to run the tokenization on. + + + + Output column name that will be used to store the tokenization result of column. + + + + + Input column name that will be tokenized into words. + + + + + Seperator list used to tokenize input string. If not specified, space will be used. + + + + + State of . Since [] is multable, it's not safe to directly expose this field to users. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Casing text using the rules of the invariant culture. If not specified, space will be used as separator. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + for the . + + + | + | Exportable to ONNX | Yes | + + The resulting creates a new column, named as specified in the output column name parameters, and + produces a vector of n-gram counts (sequences of n consecutive words) from a given data. + It does so by building a dictionary of n-grams and using the id in the dictionary as the index in the bag. + + is different from + in that the former takes tokenizes text internally while the latter takes tokenized text as input. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + Options for how the n-grams are extracted. + + + + + Maximum n-gram length. + + + + + Maximum number of tokens to skip when constructing an n-gram. + + + + + Whether to store all n-gram lengths up to ngramLength, or only ngramLength. + + + + + The maximum number of grams to store in the dictionary, for each level of n-grams, + from 1 (in position 0) up to ngramLength (in position ngramLength-1) + + + + + The weighting criteria. + + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector as + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + Separator used to separate terms/frequency pairs. + Separator used to separate terms from their frequency. + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector as + + The environment. + The column containing output tokens. + The columns containing text to compute bag of word vector. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + Separator used to separate terms/frequency pairs. + Separator used to separate terms from their frequency. + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector for each output in + + The environment. + Pairs of columns to compute bag of word vector. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + Separator used to separate terms/frequency pairs. + Separator used to separate terms from their frequency. + + + Trains and returns a . + + + + Schema propagation for estimators. + Returns the output schema shape of the estimator, if the input schema shape is like the one provided. + + + + + for the . + + + | + | Exportable to ONNX | No | + + The resulting creates a new column, named as specified in the output column name parameters, and + produces a vector of n-gram counts (sequences of n consecutive words) from a given data. + It does so by hashing each n-gram and using the hash value as the index in the bag. + + is different from + in that the former takes tokenizes text internally while the latter takes tokenized text as input. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + Produces a bag of counts of hashed n-grams in + and outputs bag of word vector as + + The environment. + The column containing bag of word vector. Null means is replaced. + The column containing text to compute bag of word vector. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Produces a bag of counts of hashed n-grams in + and outputs bag of word vector as + + The environment. + The column containing output tokens. + The columns containing text to compute bag of word vector. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Produces a bag of counts of hashed n-grams in + and outputs bag of word vector for each output in + + The environment. + Pairs of columns to compute bag of word vector. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we constuct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + Trains and returns a . + + + + Schema propagation for estimators. + Returns the output schema shape of the estimator, if the input schema shape is like the one provided. + + + + + This estimator applies a user provided expression (specified as a string) to input column values to produce new output column values. + + + + + + + + Name of the column resulting from the transformation of . + + + + Returns whether the given object is non-null and an NA value for one of the standard types. + + + + + Returns the standard NA value for the given standard type. + + + + + Helper method to bundle one or more MethodInfos into an array. + + + + + Returns the MethodInfo for the given delegate. + + + + + Returns the MethodInfo for the given delegate. + + + + + Returns the MethodInfo for the given delegate. + + + + + Returns the MethodInfo for the given delegate. + + + + + The standard builtin functions for ExprTransform. + + + + + Returns the MethodInfo for + + + + + Given an index meant to index into a given sequence normalize it according to + these rules: negative indices get added to them, and + then the index is clamped the range 0 to inclusive, + and that result is returned. (For those familiar with Python, this is the same + as the logic for slice normalization.) + + The index to normalize + The length of the sequence + The normalized version of the index, a non-positive value no greater + than . + + + + Raise a to the b power. Special cases: + * a^(negative value) => 0 + * In case of overflow, return I4.MinValue or I4.MaxValue, based on whether the result would have been + negative or positive. + + + + + Raise a to the b power. Special cases: + * a^(negative value) => 0 + * In case of overflow, return I8.MinValue or I8.MaxValue, based on whether the result would have been + negative or positive. + + + + + The IL local containing the computed value. + + + + + The boolean local indicating whether the value has been computed yet. + If the value is pre-computed, this is null. + + + + + Get the raw bits from an expression node. If the node is constant, this avoids the + silly "convert to dv type" followed by "extract raw bits". Returns whether the expression + is a constant NA, with null meaning "don't know". + + + + + Generate code to branch to labNa if the top stack element is NA. + Note that this leaves the element on the stack (duplicates before comparing). + If rev is true, this branches when NOT NA. + + + + + Generate code to branch to labNa if the top stack element is NA. + If dup is true, this leaves the element on the stack (duplicates before comparing). + If rev is true, this branches when NOT NA. + + + + + Generate a bool from comparing the raw bits. The values are guaranteed to not be NA. + + + + + Generate a bool from comparing the raw bits. The values are guaranteed to not be NA. + + + + + Generate a bool from comparing the raw bits. The values are guaranteed to not be NA. + + + + + This class contains static helper methods needed for execution. + + + + + Currently this class is not intended to be instantiated. However the methods generated + by ExprTransform need to be associated with some public type. This one serves that + purpose as well as containing static helpers. + + + + + This interface enables extending the ExprTransform language with additional functions. + + + + + The namespace for this provider. This should be a legal identifier in the expression language. + Multiple providers may contribute to the same namespace. + + + + + Returns an array of overloads for the given function name. This may return null instead of an + empty array. The returned MethodInfos should be public static methods that can be freely invoked + by IL in a different assembly. They should also be "pure" functions - with the output only + depending on the inputs and NOT on any global state. + + + + + If the function's value can be determined by the given subset of its arguments, this should + return the resulting value. Note that this should only be called if values is non-empty and + contains at least one null. If all the arguments are non-null, then the MethodInfo will be + invoked to produce the value. + + The name of the function. + The MethodInfo provided by Lookup. When there are multiple overloads of + a function with a given name, this can be used to determine which overload is being used. + The values of the input arguments, with null for the non-constant arguments. This should + only be called if there is at least one null. + The constant value, when it can be determined; null otherwise. + + + + Helper extension methods for using ILGenerator. + Rather than typing out something like: + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Ldarg_1); + il.Emit(OpCodes.Ldc_I4, i); + il.Emit(OpCodes.Ldelem_Ref); + il.Emit(OpCodes.Stfld, literalFields[i]); + You can do: + il + .Ldarg(0) + .Ldarg(1) + .Ldc_I4(i) + .Ldelem_Ref() + .Stfld(literalFields[i]); + It also provides some type safety over the Emit methods by ensuring + that you don't pass any args when using Add or that you only + pass a Label when using Br. + + + + + Maps from normalized string to keyword token kind. A lexer must be provided with one of these. + + + + + Run Lambda binder on LambdaNode and populate Expr values. + The errors contain list of user errors that occurred during binding. + The printError delegate is only used for reporting issues with function provider implementations, which are programmer errors. + In particular, it is NOT used to report user errors in the lambda expression. + + + + + Reconcile the types of the two ExprNodes. Favor numeric types in cases + where the types can't be reconciled. This does not guarantee that + the resulting kind is numeric, eg, if both a and b are of type Text, it + simply sets kind to Text. + + + + + Returns whether this candidate is applicable to the given argument types. + + + + + Returns -1 if 'this' is better than 'other', 0 if they are the same, +1 otherwise. + Non-variable is always better than variable. When both are variable, longer prefix is + better than shorter prefix. + + + + + Returns whether the given source type can be converted to the given destination type, + for the purposes of function invocation. Returns true if src is null and dst is any + valid type. + + + + + Convert the given ExprNode to the given type and get its value, when constant. + + + + + Multiple applicable candidates; pick the best one. We use a simplification of + C#'s rules, only considering the types TX, BL, I4, I8, R4, R8. Basically, parameter + type X is better than parameter type Y if X can be converted to Y. The conversions are: + I4 => I8, I4 => R4, I4 => R8, I8 => R8, R4 => R8. + + + + + Maps numeric type kinds to an index 0,1,2,3. All others map to -1. + + + + + Indicates which lex routine should be called when this character is the first + character of a token. Each character is associated with exactly one of these values. + Some associations may at first be surprising. For example, dot (.) uses NumLit and + slash (/) uses Comment. + + + + + Encapsulates information needed to map characters to tokens. + + + + + Bit masks of the UnicodeCategory enum. A couple extra values are defined + for convenience for the C# lexical grammar. + + + + + Indicates the different roles a character may have (as non-leading character). This is used for + subsequent (not first) characters in a token. For example, digits all have the Ident flag set. + + + + + Information for each character. We have a table of these for all characters less than 0x80. + + + + + Returns the lexical character type of the given character. + + + + + Convert the given uint to a unicode escape. + Note that the uint contains raw hex - not a surrogate pair. + + + + + The lexer. This is effectively a template. Call LexSource to get an Enumerable of tokens. + + + + + The constructor. Caller must provide the name pool and key word table. + + + + + Whether we've hit the end of input yet. If this returns true, ChCur will be zero. + + + + + The current character. Zero if we've hit the end of input. + + + + + Advance to the next character and return it. + + + + + Marks the beginning of the current token. + + + + + Called to embed an error token in the stream. + + + + + Form and return the next token. Returns null to signal end of input. + + + + + Call once GetNextToken returns null if you need an Eof token. + + + + + Called to lex a punctuator (operator). Asserts the current character lex type + is LexCharType.Punc. + + + + + Called to lex a numeric literal or a Dot token. Asserts the current + character lex type is LexCharType.NumLit. + + + + + Lex a hex literal optionally followed by an integer suffix. Asserts the current + character is a hex digit. + + + + + Lex a decimal integer literal. The digits must be in _sb. + + + + + Lex a real literal (float, double or decimal). The characters should be in _sb. + + + + + Lex an optional integer suffix (U and/or L). + + + + + Lex an optional real suffix (F, D, M). + + + + + Lex a string or character literal. + + + + + Lex a character escape. Returns true if successful (ch is valid). + + + + + Convert the pair of characters to a surrogate pair. + + + + + Lex an identifier. + + + + + Lex a comment. + + + + + Lex a sequence of spacing characters. + Always returns null. + + + + + Lex a line termination character. Transforms CRLF into a single LF. + Updates the line mapping. When this "drops" a character and sb is not + null, it adds the character to sb. It does NOT add the returned character + to the sb. + + + + + Skip over an error character. Always returns null. + REVIEW: Should we skip over multiple? + + + + + MethodGenerator is used to build a method by specifying the IL. + + + + + Create and return a delegate of the given "delegateType" and currying the + given "thisObj". Note that "thisObj" may be null and "delegateType" should + match the types indicated when the MethodGenerator was created. + + + + + This is idempotent (calling multiple times has the same affect as calling once). + + + + + Represents a temporary local. A MethodGenerator maintains a cache of temporary locals. + Clients can 'check-out' temporaries from the cache, use them, then release (Dispose) when + they are no longer needed so other clients can reuse the temporary to cut down on the number + of locals created. Note that Temporary is a struct, but should NOT be copied around. It is + critical that a stray copy of a Temporary is not disposed! + + We have two 'types' of temporaries: 'Regular' and 'Ref'. 'Ref' temporaries are special in that + they should be used when you need to use ldloca. Grouping this way should help the JIT optimize + local usage. + + + + + Called by the Temporary struct's Dispose method, through the _tempDisposer delegate. + + + + + Node for the ternary conditional operator. + + + + + The parse node for a "with" expression. The grammar is: + + WithNode : + with ( WithLocalNode [ , WithLocalNode ]* ; Expr ) + + Note that a with expression with multiple WithLocalNodes gets expanded to multiple + nested WithNodes. This makes the code much simpler and easily allows a with-local to + reference all previous with-locals. + + + + + The with-expression local assignment node. This contains both the name of the local and the + value expression. + + + + + This expects that ItokCur + ditok is either within the buffered token range or just + at the end of it. In other words, it does not support skipping tokens. + + + + + Signature for a constructor. + + + + + This class indicates which kernel should be approximated by the . + . + + + + + The kernels deriving from this class are shift-invariant, and each of them depends on a different distance between + its inputs. The depends on the L2 distance, and the depends + on the L1 distance. + + + + + This method returns an object that can sample from the non-negative measure that is the Fourier transform of this kernel. + + + + + The Fourier transform of a continuous positive definite kernel is a non-negative measure + (Bochner's theorem). This class + samples numbers from the non-negative measure corresponding to the given kernel. + + + + + The Gaussian kernel. + + + + + + + + Create a new instance of a GaussianKernel. + + The coefficient in the exponent of the kernel function. It should be positive. + + + + The Laplacian kernel. + + + + + + + + Create a new instance of a LaplacianKernel. + + The coefficient in the exponent of the kernel function. + + + + resulting from fitting a or . + + + + + The objects describing how the transformation is applied on the input data. + + + + + Create a that takes multiple pairs of columns. + + + + + Compute Standard Deviation. In case of both subMean and useStd are true, we technically need to compute variance + based on centered values (i.e. after subtracting the mean). But since the centered + values mean is approximately zero, we can use variance of non-centered values. + + + + + Compute Standard Deviation. + We have two overloads of StdDev instead of one with mean for perf reasons. + + + + + Compute L2-norm. L2-norm computation doesn't subtract the mean from the source values. + However, we substract the mean here in case subMean is true (if subMean is false, mean is zero). + + + + + Compute L1-norm. L1-norm computation doesn't subtract the mean from the source values. + However, we substract the mean here in case subMean is true (if subMean is false, mean is zero). + + + + + Compute LInf-norm. LInf-norm computation doesn't subtract the mean from the source values. + However, we substract the mean here in case subMean is true (if subMean is false, mean is zero). + + + + + Base estimator class for and normalizers. + + + + + The kind of unit norm vectors are rescaled to. This enumeration is serialized. + + + + + L2-norm. + + + + + Standard deviation of a vector by viewing all its coordinates as a random variable. + + + + + L1-norm. + + + + + Infinity-norm. + + + + + Describes base class for one column pair. + + + + + Name of the column resulting from the transformation of . + + + + + Name of column to transform. + + + + + The norm to use to normalize each sample. + + + + + Subtract mean from each value before normalizing. + + + + + Scale features by this value. + + + + + Create a that takes multiple pairs of columns. + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Normalizes (scales) vectors in the input column to the unit norm. The type of norm that is used can be specified by the user. + + + | + | Output column data type | Vector of | + | Exportable to ONNX | Yes | + + The resulting normalizes vectors in the input column individually + by rescaling them to the unit norm. + + Let $x$ be the input vector, $n$ the size of the vector, $L(x)$ the norm function selected by the user. + Let $\mu(x) = \sum_i x_i / n$ be the mean of the values of vector $x$. The + performs the following operation on each input vector $x$: + $y = \frac{x - \mu(x)}{L(x)}$ + if the user specifies that the mean should be zero, or otherwise: + $y = \frac{x}{L(x)}$ + + There are four types of norm that can be selected by the user to be applied on input vector $x$. They are defined as follows: + - : $L_1(x) = \sum_i |x_i|$ + - : $L_2(x) = \sqrt{\sum_i x_i^2}$ + - : $L_{\infty}(x) = \max_i\{|x_i|\}$ + - : $L_\sigma(x)$ is defined as the + standard deviation of the elements of the input vector $x$ + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Describes how the transformer handles one column pair. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Type of norm to use to normalize each sample. The indicated norm of the resulted vector will be normalized to one. + If , subtract mean from each value before normalizing and use the raw input otherwise. + + + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Type of norm to use to normalize each sample. The indicated norm of the resulted vector will be normalized to one. + If , subtract mean from each value before normalizing and use the raw input otherwise. + + + + The environment. + Pairs of columns to run the normalization on. + Type of norm to use to normalize each sample. The indicated norm of the resulted vector will be normalized to one. + If , subtract mean from each value before normalizing and use the raw input otherwise. + + + + Create a that takes multiple pairs of columns. + + + + + Normalizes (scales) vectors in the input column applying the global contrast normalization. + + + | + | Output column data type | Vector of | + | Exportable to ONNX | Yes | + + The resulting normalizes vectors in the input column individually, + rescaling them by applying global contrast normalization. The transform performs the following operation on each input vector $x$: + $y = \frac{s * x - \mu(x)}{L(x)}$. + Where $s$ is a user provided scaling factor, $\mu(x)$ is the mean of the elements of vector $x$, and $L(x)$ is the $L_2$ norm or the + standard deviation of the elements of vector $x$. These settings can be specified by the user when the + is initialized. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + Describes how the transformer handles one Gcn column pair. + + + + + Describes how the transformer handles one Gcn column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + If , subtract mean from each value before normalizing and use the raw input otherwise. + If , resulted vector's standard deviation would be one. Otherwise, resulted vector's L2-norm would be one. + Scale features by this value. + + + + Performs a global contrast normalization on input values: + Y = (s * X - M) / D + where s is a scale, M is mean and D is either the L2 norm or standard deviation. + + Scaling inputs to unit norms is a common operation for text classification or clustering. + For more information see: + An Analysis of Single-Layer Networks in Unsupervised Feature Learning + + + pipeline.Add(new GlobalContrastNormalizer("FeatureCol") + { + SubMean= false + }); + + + The environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + If , subtract mean from each value before normalizing and use the raw input otherwise. + If , resulted vector's standard deviation would be one. Otherwise, resulted vector's L2-norm would be one. + Scale features by this value. + + + + Performs a global contrast normalization on input values: + Y = (s * X - M) / D + where s is a scale, M is mean and D is either the L2 norm or standard deviation. + + Scaling inputs to unit norms is a common operation for text classification or clustering. + For more information see: + An Analysis of Single-Layer Networks in Unsupervised Feature Learning + + + pipeline.Add(new GlobalContrastNormalizer("FeatureCol") + { + SubMean= false + }); + + + The environment. + Pairs of columns to run the normalization on. + If , subtract mean from each value before normalizing and use the raw input otherwise. + If , resulted vector's standard deviation would be one. Otherwise, resulted vector's L2-norm would be one. + Scale features by this value. + + + + Create a that takes multiple pairs of columns. + + + + + A Trasforms that groups values of a scalar column into a vector, by a contiguous group ID. + + +

This transform essentially performs the following SQL-like operation:

+

SELECT GroupKey1, GroupKey2, ... GroupKeyK, LIST(Value1), LIST(Value2), ... LIST(ValueN) + FROM Data + GROUP BY GroupKey1, GroupKey2, ... GroupKeyK.

+ +

It assumes that the group keys are contiguous (if a new group key sequence is encountered, the group is over). + The GroupKeyN and ValueN columns can be of any primitive types. The code requires that every raw type T of the group key column + is an , which is currently true for all existing primitive types. + The produced ValueN columns will be variable-length vectors of the original value column types.

+ +

The order of ValueN entries in the lists is preserved.

+ + + Example: + User Item + Pete Book + Tom Table + Tom Kitten + Pete Chair + Pete Cup + + Result: + User Item + Pete [Book] + Tom [Table, Kitten] + Pete [Chair, Cup] + +
+
+ + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Columns to group by + Columns to group together + + + + This class describes the relation between 's input , + , and output , . + + The contains columns used to group columns and columns being aggregated from input data. + In , group columns are followed by aggregated columns. For example, if column "Age" is used to group "UserId" column, + the first column and the second column in produced by would be "Age" and "UserId," respectively. + Note that "Age" is a group column while "UserId" is an aggregated (also call keep) column. + + For group columns, the schema information is intact. For aggregated columns, the type is Vector of original type and variable length. + The only metadata preserved is the KeyNames and IsNormalized. All other columns are dropped. Please see + how this idea got implemented. + + + + + [i] is the i-th group(-key) column's column index in the source schema. + + + + + [i] is the i-th aggregated column's column index in the source schema. + + + + + Output of when input schema is . + + + + + Compute the output schema of a given a input schema. + + Input schema. + The associated output schema produced by . + + + + Given column names, extract and return column indexes from source schema. + + Source schema + Column names + Marked exception function + column indexes + + + + Determine if output column index is valid to . A valid output column index should be greater than or + equal 0 and smaller than # of output columns. + + Column index of + + + + This cursor will create two cursors on the input data view: + - The leading cursor will activate all the group columns, and will advance until it hits the end of the contiguous group. + - The trailing cursor will activate all the requested columns, and will go through the group + (as identified by the leading cursor), and aggregate the keep columns. + + The getters are as follows: + - The group column getters are taken directly from the trailing cursor. + - The keep column getters are provided by the aggregators. + + + + + This class keeps track of the previous group key and tests the current group key against the previous one. + + + + + This class handles the aggregation of one 'keep' column into a vector. It wraps around an 's + column, reads the data and aggregates. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This transform hashes its input columns. Each column is hashed separately, and within each + column there is an option to specify which slots should be hashed together into one output slot. + This transform can be applied either to single valued columns or to known length vector columns. + + + + + Constructs the correct KeyType for the given hash bits. + Because of array size limitation, if numberOfBits = 31, the key type is not contiguous (not transformable into indicator array) + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the output column. + Name of the column to be transformed. If this is null '' will be used. + Whether the values need to be combined for a single hash. + Number of bits to hash into. Must be between 1 and 31, inclusive. + + + + Converts multiple column values into hashes. + This transform accepts both numeric and text inputs, both single and vector-valued columns. + + This transform can be helpful for ranking and cross-validation. In the case of ranking, where the GroupIdColumn column is required, + and needs to be of a key type you can use the to hash the text value of a single GroupID column into a key value. + If the GroupID is the combination of the values from multiple columns, you can use the HashConverter to hash multiple text columns into one key column. + Similarly with CrossValidator and the StratificationColumn. + + + + + Getter generator for inputs of type + + Input type. Must be a non-vector + Row inout + Index of the getter + + + + Getter generator for inputs of type , where output type is a vector of hashes + + Input type. Must be a vector + Row input + Index of the getter + + + + Getter generator for inputs of type , where output type is a single hash + + Input type. Must be a vector + Row input + Index of the getter + + + + Generic hash function + + + + + Generate a specialized hash function for floats + + + + + Generate a specialized hash function for doubles + + + + + resulting from fitting a . + + + + + The names of the output and input column pairs on which the transformation is performed. + + + + + This is for the scalar case. + + + + + This is for the indicator case - vector input and outputs should be concatenated. + + + + + Estimator for . Converts key types to their corresponding binary representation of the original value. + + + + + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Utility class for creating transforms easily. + + + + + This is a 'stateful non-savable' version of the map transform: the mapping function is guaranteed to be invoked once per + every row of the data set, in sequence; one user-defined state object will be allocated per cursor and passed to the + map function every time. If , , or + implement the interface, they will be disposed after use. + + The type that describes what 'source' columns are consumed from the + input . + The type of the state object to allocate per cursor. + The type that describes what new columns are added by this transform. + The host environment to use. + The input data to apply transformation to. + The function that performs the transformation. The function should transform its + argument into its argument and can utilize the per-cursor state. + The function that is called once per cursor to initialize state. Can be null. + The optional input schema. If null, the schema is + inferred from the type. + The optional output schema. If null, the schema is + inferred from the type. + + + + This creates a filter transform that can 'accept' or 'decline' any row of the data based on the contents of the row + or state of the cursor. + This is a 'stateful non-savable' version of the filter: the filter function is guaranteed to be invoked once per + every row of the data set, in sequence (non-parallelizable); one user-defined state object will be allocated per cursor and passed to the + filter function every time. + If or implement the interface, they will be disposed after use. + + The type that describes what 'source' columns are consumed from the + input . + The type of the state object to allocate per cursor. + The host environment to use. + The input data to apply transformation to. + The user-defined function that determines whether to keep the row or discard it. First parameter + is the current row's contents, the second parameter is the cursor-specific state object. + The function that is called once per cursor to initialize state. Can be null. + The optional input schema. If null, the schema is + inferred from the type. + + + + + Selects the slots for which the absolute value of the corresponding weight in a linear learner + is greater than a threshold. + Instantiates a DropSlots transform to actually drop the slots. + + + + + Returns a score for each slot of the features column. + + + + + Load specific transforms from the specified model file. Allows one to 'cherry pick' transforms from + a serialized chain, or to apply a pre-trained transform to a different (but still compatible) data view. + + + + + A helper method to create for public facing API. + + Host Environment. + Input . This is the output from previous transform or loader. + Model file to load the transforms from. + The tags (comma-separated) to be loaded (or omitted, if complement is true). + Whether to load all transforms except those marked by tags. + + + + + Removes missing values from vector type columns. + + + + + + The names of the input columns of the transformation and the corresponding names for the output columns. + + + + + Initializes a new instance of + + The environment to use. + The names of the input columns of the transformation and the corresponding names for the output columns. + + + + Saves the transform. + + + + + + + + Replace with the default value of the column based on its type. For example, 'zero' for numeric and 'empty' for string/text columns. + + + + + Replace with the mean value of the column. Supports only numeric/time span/ DateTime columns. + + + + + Replace with the minimum value of the column. Supports only numeric/time span/ DateTime columns. + + + + + Replace with the maximum value of the column. Supports only numeric/time span/ DateTime columns. + + + + + A helper method to create for public facing API. + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the output column. + Name of the column to be transformed. If this is null '' will be used. + The replacement method to utilize. + + + Factory method for SignatureDataTransform. + + + + Public constructor corresponding to SignatureDataTransform. + + + + + resulting from fitting a . + + + + + The names of the output and input column pairs for the transformation. + + + + + Initializes a new instance of + + The environment to use. + The names of the input columns of the transformation and the corresponding names for the output columns. + + + + Saves the transform. + + + + + Returns the isNA predicate for the respective type. + + + + + Getter generator for single valued inputs. + + + + + Getter generator for vector valued inputs. + + + + + Adds all NAs (or non-NAs) to the indices List. Whether NAs or non-NAs have been added is indicated by the bool sense. + + + + + Fills indicator values for vectors. The indices is a list that either holds all of the NAs or all + of the non-NAs, indicated by sense being true or false respectively. + + + + + for the . + + + or | + | Output column data type | If input column was scalar then otherwise vector of . | + | Exportable to ONNX | Yes | + + The resulting creates a new column, named as specified in the output column name parameters, and + fills it with vector of bools where `true` in the i-th position in array indicates the i-th element in input column has missing value and `false` otherwise. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + Initializes a new instance of + + The environment to use. + The names of the input columns of the transformation and the corresponding names for the output columns. + + + + Initializes a new instance of + + The environment to use. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting a . + + + + + Fill the repValues array with the correct replacement values based on the user-given replacement kinds. + Vectors default to by-slot imputation unless otherwise specified, except for unknown sized vectors + which force across-slot imputation. + + + + + Returns the isNA predicate for the respective type. + + + + + Converts a string to its respective value in the corresponding type. + + + + + Getter generator for single valued inputs. + + + + + Replaces NA values for scalars. + + + + + Getter generator for vector valued inputs. + + + + + Replaces NA values for vectors. + + + + + Fills values for vectors where there is one replacement value. + + + + + Fills values for vectors where there is slot-wise replacement values. + + + + + The base class for stat aggregators for imputing mean, min, and max for the NAReplaceTransform. + + + + + The base class for stat aggregators with knowledge of types. + + The type for the column being aggregated. + The type of the stat being computed by the stat aggregator. + + + + Returns the number of times that ProcessRow has been called. + + + + + Returns the number of values that have been processed so far. + + + + + Returns the number of times that ProcessValue has been called. + + + + + A mutable struct for keeping the appropriate statistics for mode calculations, whose scope is restricted + and only exists as an instance in a field or an array, utilizing the mutation of the struct correctly. + + + + + This is a mutable struct (so is evil). However, its scope is restricted + and the only instances are in a field or an array, so the mutation does + the right thing. + + + + + A mutable struct for keeping the appropriate statistics for mean calculations for IX types, TS, and DT, + whose scope is restricted and only exists as an instance in a field or an array, utilizing the mutation + of the struct correctly. + + + + + for the . + + + or | + | Output column data type | The same as the data type in the input column | + | Exportable to ONNX | Yes | + + The resulting creates a new column, named as specified in the output column name parameters, and + copies the data from the input column to this new column with exception what missing values in data would be replaced according to chosen strategy. + + Check the See Also section for links of usage examples. + ]]> + + + + + + + + The possible ways to replace missing values. + + + + + Replace with the default value of the column based on its type. + + + + + Replace with the mean value of the column. + + + + + Replace with the minimum value of the column. + + + + + Replace with the maximum value of the column. + + + + + Replace with the most frequent value of the column. + + + + + Describes how the transformer handles one column pair. + + + + Name of the column resulting from the transformation of . + + + Name of column to transform. + + + + If true, per-slot imputation of replacement is performed. + Otherwise, replacement value is imputed for the entire vector column. This setting is ignored for scalars and variable vectors, + where imputation is always for the entire column. + + + + How to replace the missing values. + + + Replacement value for missing values (only used in entrypoing and command line API). + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + How to replace the missing values. + If true, per-slot imputation of replacement is performed. + Otherwise, replacement value is imputed for the entire vector column. This setting is ignored for scalars and variable vectors, + where imputation is always for the entire column. + + + + This constructor is used internally to convert from to + as we support in command line and entrypoint API only. + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + + Selects the top k slots across all specified columns ordered by their mutual information with the label column + (what you can learn about the label by observing the value of the specified column). + + + + + + + + + + Selects the top k slots across all specified columns ordered by their mutual information with the label column. + + + The mutual information of two random variables X and Y is a measure of the mutual dependence between the variables. + Formally, the mutual information can be written as: + + I(X;Y) = E[log(p(x,y)) - log(p(x)) - log(p(y))] + where the expectation is taken over the joint distribution of X and Y. + Here p(x,y) is the joint probability density function of X and Y, p(x) and p(y) are the marginal probability density functions of X and Y respectively. + In general, a higher mutual information between the dependent variable (or label) and an independent variable (or feature) means + that the label has higher mutual dependence over that feature. + It keeps the top SlotsInOutput features with the largest mutual information with the label. + + + The environment to use. + Name of the column to use for labels. + The maximum number of slots to preserve in the output. The number of slots to preserve is taken across all input columns. + Max number of bins used to approximate mutual information between each input column and the label column. Power of 2 recommended. + Specifies the names of the input columns for the transformation, and their respective output column names. + + + + + + + + + Selects the top k slots across all specified columns ordered by their mutual information with the label column. + + + The mutual information of two random variables X and Y is a measure of the mutual dependence between the variables. + Formally, the mutual information can be written as: + + I(X;Y) = E[log(p(x,y)) - log(p(x)) - log(p(y))] + where the expectation is taken over the joint distribution of X and Y. + Here p(x,y) is the joint probability density function of X and Y, p(x) and p(y) are the marginal probability density functions of X and Y respectively. + In general, a higher mutual information between the dependent variable (or label) and an independent variable (or feature) means + that the label has higher mutual dependence over that feature. + It keeps the top SlotsInOutput features with the largest mutual information with the label. + + + The environment to use. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Name of the column to use for labels. + The maximum number of slots to preserve in the output. The number of slots to preserve is taken across all input columns. + Max number of bins used to approximate mutual information between each input column and the label column. Power of 2 recommended. + + + + + + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Create method corresponding to SignatureDataTransform. + + + + + Computes the threshold for the scores such that the top k slots are preserved. + If there are less than k scores greater than zero, the threshold is set to zero and + the tiedScoresToKeep is set to zero, so that we only keep scores strictly greater than zero. + + The score for each column and each slot. + How many slots to preserve. + If there are ties, how many of them to keep. + The threshold. + + + + Returns the feature selection scores for each slot of each column. + + The host. + The input dataview. + The label column. + The columns for which to compute the feature selection scores. + The number of bins to use for numeric features. + The columns' sizes before dropping any slots. + A list of scores for each column and each slot. + + + + Computes the mutual information for one column. + + + + + Computes the mutual information for one column. + + + + + Computes the mutual information for one slot. + + + + + Fills the contingency table. + + + + + Maps from keys to ints. + + + + + Maps Ints. + + + + + Maps from Singles to ints. NaNs (and only NaNs) are mapped to the first bin. + + + + + Maps from Doubles to ints. NaNs (and only NaNs) are mapped to the first bin. + + + + + Given a mapper from T to int, creates a mapper from VBuffer{T} to VBuffer<int>. + Assumes that the mapper maps default(TSrc) to default(TDst) so that the returned mapper preserves sparsity. + + + + + Entry point methods for NA handling. + + + + + resulting from fitting a . + + + + + Converts one or more input columns of categorical values into as many output columns of one-hot encoded vectors. + + + or [key](xref:Microsoft.ML.Data.KeyDataViewType) type. | + | Output column data type | Scalar or vector of [key](xref:Microsoft.ML.Data.KeyDataViewType), or vector of type. | + | Exportable to ONNX | Yes | + + The builds a dictionary of unique values appearing in the input column. + The resulting converts one or more input columns into as many output + columns of one-hot encoded vectors. + + The is often used to convert categorical data into a form that can be + provided to a machine learning algorithm. + + The output of this transform is specified by : + + - produces an [indicator vector](https://en.wikipedia.org/wiki/Indicator_vector). + Each slot in this vector corresponds to a category in the dictionary, so its length is the size of the built dictionary. + If a value is not found in the dictioray, the output is the zero vector. + + - produces one vector such that each slot stores the number + of occurances of the corresponding value in the input vector. + Each slot in this vector corresponds to a value in the dictionary, so its length is the size of the built dictionary. + and + differ simply in how the bit-vectors generated from individual slots in the input column are aggregated: + for Indicator they are concatenated and for Bag they are added. When the source column is a Scalar, the Indicator and Bag options are identical. + + - produces keys in a column. + If the input column is a vector, the output contains a vectory [key](xref:Microsoft.ML.Data.KeyDataViewType) type, where each slot of the + vector corresponds to the respective slot of the input vector. + If a category is not found in the bulit dictionary, it is assigned the value zero. + + - produces a binary encoded vector to represent the values found in the dictionary + that are present in the input column. If a value in the input column is not found in the dictionary, the output is the zero vector. + + The OneHotEncodingTransformer can be applied to one or more columns, in which case it builds and uses a separate dictionary + for each column that it is applied to. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + Output is a bag (multi-set) vector + + + + + Output is an indicator vector + + + + + Output is a key value + + + + + Output is binary encoded + + + + + Describes how the transformer handles one column pair. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + Output kind: Bag (multi-set vector), Ind (indicator vector), Key (index), or Binary encoded indicator vector. + Maximum number of terms to keep per column when auto-training. + How items should be ordered when vectorized. If choosen they will be in the order encountered. + If , items are sorted according to their default comparison, for example, text sorting will be case sensitive (for example, 'A' then 'Z' then 'a'). + + + Initializes an instance of the . + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The type of output expected. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + + resulting from fitting a . + + + + + This class is a merger of and + with join option removed + + + + + A helper method to create . + + Host Environment. + Input . This is the output from previous transform or loader. + Name of the output column. + Name of the column to be transformed. If this is null '' will be used. + Number of bits to hash into. Must be between 1 and 30, inclusive. + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + The type of output expected. + + + + Schema propagation for transformers. Returns the output schema of the data, if + the input schema is like the one provided. + + + + + Take the data in, make transformations, output the data. Note that + are lazy, so no actual transformations happen here, just schema validation. + + + + + Whether a call to should succeed, on an appropriate schema. + + + + + Constructs a row-to-row mapper based on an input schema. + + + + + Converts one or more input columns of categorical values into as many output columns of hash-based one-hot encoded vectors. + + + type. | + | Exportable to ONNX | No | + + The resulting converts one or more input columns into as many output + columns of one-hot encoded vectors, where indexing is done by hashing the value and using the hash as an index. + + The is often used to convert categorical data into a form that can be + provided to a machine learning algorithm. + + The output of this transform is specified by : + + - produces an [indicator vector](https://en.wikipedia.org/wiki/Indicator_vector). + Each slot in this vector corresponds to a category in the dictionary, so its length is the size of the built dictionary. + If a value is not found in the dictionary, the output is the zero vector. + + - produces one vector such that each slot stores the number + of occurrences of the corresponding value in the input vector. + Each slot in this vector corresponds to a value in the dictionary, so its length is the size of the built dictionary. + and + differ simply in how the bit-vectors generated from individual slots in the input column are aggregated: + for Indicator they are concatenated and for Bag they are added. When the source column is a Scalar, the Indicator and Bag options are identical. + + - produces keys in a column. + If the input column is a vector, the output contains a vector [key](xref:Microsoft.ML.Data.KeyDataViewType) type, where each slot of the + vector corresponds to the respective slot of the input vector. + If a category is not found in the built dictionary, it is assigned the value zero. + + - produces a binary encoded vector to represent the values found in the dictionary + that are present in the input column. If a value in the input column is not found in the dictionary, the output is the zero vector. + + The OneHotEncodingTransformer can be applied to one or more columns, in which case it builds and uses a separate dictionary + for each column that it is applied to. + + Check the See Also section for links to usage examples. + ]]> + + + + + + + + Describes how the transformer handles one column pair. + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + Kind of output: bag, indicator vector etc. + Number of bits to hash into. Must be between 1 and 31, inclusive. + Hashing seed. + Whether the position of each term should be included in the hash. + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Instantiates a new instance of . + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. + If set to , the value of the will be used as source. + Number of bits to hash into. Must be between 1 and 30, inclusive. + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the metadata for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + The type of output expected. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + Trains and returns a . + + + + + Creates a new column with the specified type and default values. + + If the user wish to create additional columns with a particular type and default values, or replicated the values from one column to another, changing their type, they can do so using this transform. + This transform can be used as a workaround to create a Label column after deserializing a model, for prediction. + Some transforms in the serialized model operate on the Label column, and would throw errors during prediction if such a column is not found. + + + + + Given a set of columns, return the input columns that are needed to generate those output columns. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Columns to transform. + + + + Public constructor corresponding to SignatureDataTransform. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + This is used as a hack to force Lambda Transform behave sequentially. + + + + + Helper structure used for features permutation in Lambda Transform. + + + + + Helper class for report's Lambda transform. + + + + + One more helper class for report's Lambda transform. + + + + + Produces a column with the cursor's ID as a column. This can be useful for diagnostic purposes. + + This class will obviously generate different data given different IDs. So, if you save data to + some other file, then apply this transform to that dataview, it may of course have a different + result. This is distinct from most transforms that produce results based on data alone. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to ب + ب + بعد + حتى + حين + دون + صباح + في + قبل + لكن + مساء + مع + من + نحو + واكد + وفي + ومن + اطار + و + اثر + اجل + احد + اذا + اكثر + اكد + التي + الثاني + الثانية + الذاتي + الذي + الذين + السابق + الف + الماضي + المقبل + الوقت + اليوم + امس + انه + باسم + بان + برس + بسبب + بشكل + بعض + بن + به + بها + بين + تم + ثلاثة + ثم + جميع + حاليا + حوالى + حول + حيث + خلال + ذلك + زيارة + سنة + سنوات + شخصا + صفر + ضد + ضمن + عام + عاما + عدة + عدد + عدم + عشر + عشرة + على + عليه + عليها + عن + عند + عندما + غدا + غير + فان + فيه + فيها + قال + قد + قوة + كان + كانت + كل + كلم + كما + لا + لدى + لقا [rest of string was truncated]";. + + + + + Looks up a localized string similar to bude + budeš + byl + byla + byli + bylo + je + jsem + jsme + jsou + jste + aby + aj + ale + ani + asi + až + bez + bude-li + budeme + budeme-li + budete + budete-li + budeš-li + budou + budou-li + budu + budu-li + buď + buďme + buďte + by + byl-li + byla-li + bylas + byli-li + bylo-li + bylos + byls + byly + byly-li + byt + byv + byvše + byvši + být + býti + co + což + cz + další + design + dnes + do + email + ho + jak + jako + je-li + jeho + jej + jejich + její + jen + ještě + ji + jine + již + jsa + jsem-li + jsi + jsi-li + jsme-li + jsou-li + jsouc + jsouce + jste-li + kam + kde + [rest of string was truncated]";. + + + + + Looks up a localized string similar to af + andre + at + da + de + deres + dette + din + ej + en + ene + et + han + hans + i + ind + lille + ni + ny + otte + stor + store + syv + alle + andet + begge + den + denne + der + det + dig + dog + du + eller + end + eneste + enhver + fem + fire + flere + fleste + for + fordi + forrige + fra + få + før + god + har + hendes + her + hun + hvad + hvem + hver + hvilken + hvis + hvor + hvordan + hvorfor + hvornår + ikke + ingen + intet + jeg + jeres + kan + kom + kommer + lav + lidt + man + mand + mange + med + meget + men + mens + mere + mig + ned + nogen + noget + nyt + nær + næste + næsten + [rest of string was truncated]";. + + + + + Looks up a localized string similar to aan + af + al + als + bij + dan + dat + die + dit + een + en + er + had + heb + hem + het + hij + hoe + hun + ik + in + is + je + kan + me + men + met + mij + nog + nu + of + ons + ook + te + tot + uit + van + was + wat + we + wel + wij + zal + ze + zei + zij + zo + zou + . + + + + + Looks up a localized string similar to a + about + above + above + across + after + afterwards + again + against + all + almost + alone + along + already + also + although + always + am + among + amongst + amoungst + amount + an + and + another + any + anyhow + anyone + anything + anyway + anywhere + are + around + as + at + back + be + became + because + become + becomes + becoming + been + before + beforehand + behind + being + below + beside + besides + between + beyond + both + bottom + but + by + call + can + cannot + cant + co + con + could + couldnt + cry + de + describe + detail + do + done + down + due + du [rest of string was truncated]";. + + + + + Looks up a localized string similar to de + des + d' + la + du + l' + et + à + en + sur + aux + par + pour + au + dans + un + est + été + a + une + sous + ou + pas + entre + qui + nº + lès + plus + il + y + que + contre + je + non + n' + sans + vous + avec + ne + ce + son + ses + mon + moins + se + qu' + moi + j' + c' + si + ma + s' + être + tout + comme + sa + sont + ai + elle + autres + pendant + chez + mais + avant + nous + cette + après + vers + était + tous + autre + tu + très + même + ont + anti + puis + leur + où + lui + ça + suis + depuis + ni + mes + près + hors + outre + ils + votre + toi + lors + t' + aussi + donc + ces + toute + [rest of string was truncated]";. + + + + + Looks up a localized string similar to a + ab + aber + aber + ach + acht + achte + achten + achter + achtes + ag + alle + allein + allem + allen + aller + allerdings + alles + allgemeinen + als + als + also + am + an + andere + anderen + andern + anders + au + auch + auch + auf + aus + ausser + außer + ausserdem + außerdem + b + bald + bei + beide + beiden + beim + beispiel + bekannt + bereits + besonders + besser + besten + bin + bis + bisher + bist + c + d + da + dabei + dadurch + dafür + dagegen + daher + dahin + dahinter + damals + damit + danach + daneben + dank + dann + daran + darauf + daraus + darf + darfst + [rest of string was truncated]";. + + + + + Looks up a localized string similar to a + adesso + ai + al + alla + allo + allora + altre + altri + altro + anche + ancora + avere + aveva + avevano + ben + buono + che + chi + cinque + comprare + con + consecutivi + consecutivo + cosa + cui + da + del + della + dello + dentro + deve + devo + di + doppio + due + e + ecco + fare + fine + fino + fra + gente + giù + ha + hai + hanno + ho + il + indietro + invece + io + la + lavoro + le + lei + lo + loro + lui + lungo + ma + me + meglio + molta + molti + molto + nei + nella + no + noi + nome + nostro + nove + nuovi + nuovo + o + oltre + ora + otto + peggio + pero + persone + più [rest of string was truncated]";. + + + + + Looks up a localized string similar to これ + それ + あれ + この + その + あの + ここ + そこ + あそこ + こちら + どこ + だれ + なに + なん + 何 + 私 + 貴方 + 貴方方 + 我々 + 私達 + あの人 + あのかた + 彼女 + 彼 + です + あります + おります + います + は + が + の + に + を + で + え + から + まで + より + も + どの + と + し + それで + しかし + . + + + + + Looks up a localized string similar to alle + andre + arbeid + av + begge + bort + bra + bruke + da + denne + der + deres + det + din + disse + du + eller + en + ene + eneste + enhver + enn + er + et + folk + for + fordi + forsøke + fra + få + før + først + gjorde + gjøre + god + gå + ha + hadde + han + hans + hennes + her + hva + hvem + hver + hvilken + hvis + hvor + hvordan + hvorfor + i + ikke + inn + innen + kan + kunne + lage + lang + lik + like + makt + mange + med + meg + meget + men + mens + mer + mest + min + mye + må + måte + navn + nei + ny + nå + når + og + også + om + opp + oss + over + part + punkt + på + rett + rikti [rest of string was truncated]";. + + + + + Looks up a localized string similar to ach + aj + albo + bardzo + bez + bo + być + ci + ciebie + cię + co + czy + daleko + dla + dlaczego + dlatego + do + dobrze + dokąd + dość + dużo + dwa + dwaj + dwie + dwoje + dzisiaj + dziś + gdyby + gdzie + go + ich + ile + im + inny + ja + jak + jakby + jaki + je + jeden + jedna + jedno + jego + jej + jemu + jest + jestem + jeśli + jeżeli + już + ją + każdy + kiedy + kierunku + kto + ku + lub + ma + mają + mam + mi + mnie + mną + moi + moja + moje + może + mu + my + mój + na + nam + nami + nas + nasi + nasz + nasza + nasze + natychmiast + nic + nich + nie + niego + niej + niemu + nigdy + n [rest of string was truncated]";. + + + + + Looks up a localized string similar to último + é + acerca + agora + algumas + alguns + ali + ambos + antes + apontar + aquela + aquelas + aquele + aqueles + aqui + atrás + bem + bom + cada + caminho + cima + com + como + comprido + conhecido + corrente + das + debaixo + dentro + desde + desligado + deve + devem + deverá + direita + diz + dizer + dois + dos + e + ela + ele + eles + em + enquanto + então + está + estão + estado + estar + estará + este + estes + esteve + estive + estivemos + estiveram + eu + fará + faz + fazer + fazia + fez + fim + foi + fora + horas + iniciar + inicio + ir + irá + isto + ligado + maio [rest of string was truncated]";. + + + + + Looks up a localized string similar to último + é + acerca + agora + algumas + alguns + ali + ambos + antes + apontar + aquela + aquelas + aquele + aqueles + aqui + atrás + bem + bom + cada + caminho + cima + com + como + comprido + conhecido + corrente + das + debaixo + dentro + desde + desligado + deve + devem + deverá + direita + diz + dizer + dois + dos + e + ela + ele + eles + em + enquanto + então + está + estão + estado + estar + estará + este + estes + esteve + estive + estivemos + estiveram + eu + fará + faz + fazer + fazia + fez + fim + foi + fora + horas + iniciar + inicio + ir + irá + isto + ligado + maio [rest of string was truncated]";. + + + + + Looks up a localized string similar to а + е + и + ж + м + о + на + не + ни + об + но + он + мне + мои + мож + она + они + оно + мной + много + многочисленное + многочисленная + многочисленные + многочисленный + мною + мой + мог + могут + можно + может + можхо + мор + моя + моё + мочь + над + нее + оба + нам + нем + нами + ними + мимо + немного + одной + одного + менее + однажды + однако + меня + нему + меньше + ней + наверху + него + ниже + мало + надо + один + одиннадцать + одиннадцатый + назад + наиболее + недавно + миллионов + недалеко + между + низко + меля + нельзя + нибудь + непрерывно + наконец + никогда + ник [rest of string was truncated]";. + + + + + Looks up a localized string similar to ésa + ésta + éste + última + últimas + último + últimos + aún + a + la + vez + a.m. + abierto + abunda + acaba + además + ahora + al + algún + alguna + alguno + alrededor + alta + altas + alto + altos + am + ambas + ambos + antes + aquél + aquélla + aquí + aquel + aquella + aquellas + aquello + aquellos + así + atardecer + aunque + básicamente + b + c + cada + casi + celebran + centro + cercanía + cierta + ciertas + cierto + ciertos + común + comúnmente + como + complemento + complementos + completamente + comunes + con + conforme + considerable + considerada + consider [rest of string was truncated]";. + + + + + Looks up a localized string similar to aderton + adertonde + adjö + aldrig + alla + allas + allt + alltid + alltså + än + andra + andras + annan + annat + ännu + artonde + arton + åtminstone + att + åtta + åttio + åttionde + åttonde + av + även + båda + bådas + bakom + bara + bäst + bättre + behöva + behövas + behövde + behövt + beslut + beslutat + beslutit + bland + blev + bli + blir + blivit + bort + borta + bra + då + dag + dagar + dagarna + dagen + där + därför + de + del + delen + dem + den + deras + dess + det + detta + dig + din + dina + dit + ditt + dock + du + efter + eftersom + elfte + eller + elva + en + enk [rest of string was truncated]";. + + + + + resulting from fitting an . + + + + + Maps vector columns to a low -dimensional feature space. + + + | + | Output column data type | Known-sized vector of | + | Exportable to ONNX | No | + + The resulting creates a new column, named as specified in + the output column name parameters, where each input vector is mapped to a feature space where inner products + approximate one of two shift-invariant kernel functions: The Gaussian kernel, or the Laplacian kernel. + By mapping features to a space that approximate non-linear kernels, linear methods can be used to approximate + more complex kernel SVM models. + This mapping is based on the paper [Random Features for Large-Scale Kernel Machines](http://pages.cs.wisc.edu/~brecht/papers/07.rah.rec.nips.pdf) + by Rahimi and Recht. + + Check the See Also section for links to usage examples. + ]]> + + + + + + Describes how the transformer handles one Gcn column pair. + + + + + Name of the column resulting from the transformation of . + + + + + Name of the column to transform. + + + + + Which fourier generator to use. + + + + + The number of random Fourier features to create. + + + + + If , use both of cos and sin basis functions to create two features for every random Fourier frequency. + Otherwise, only cos bases would be used. + + + + + The seed of the random number generator for generating the new features (if unspecified, the global random is used). + + + + + Describes how the transformer handles one column pair. + + Name of the column resulting from the transformation of . + The number of random Fourier features to create. + If , use both of cos and sin basis functions to create two features for + every random Fourier frequency. Otherwise, only cos bases would be used. + Name of column to transform. + Which fourier generator to use. + The seed of the random number generator for generating the new features (if unspecified, the global random is used). + + + + Convinence constructor for simple one column case. + + Host Environment. + Name of the column resulting from the transformation of . + Name of the column to transform. If set to , the value of the will be used as source. + The number of random Fourier features to create. + Create two features for every random Fourier frequency? (one for cos and one for sin). + + + + Trains and returns a . + + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + resulting from fitting an . + + The class defining which columns to take from the incoming data. + The class defining which new columns are added to the data. + The type that describes per-cursor state. + + + + Whether a call to should succeed, on an + appropriate schema. + + + + + Create a custom mapping of input columns to output columns. + + The host environment + The action by which we map source to destination columns + The name of the action (will be saved to the model). + The action to initialize the state object, that is called once before the cursor is initialized. + + + + Returns the which would be produced by the transformer applied to + an input data with schema . + + + + + Take the data in, make transformations, output the data. + Note that 's are lazy, so no actual transformations happen here, just schema validation. + + + + + Constructs a row-to-row mapper based on an input schema. If + is false, then an exception is thrown. If the is in any way + unsuitable for constructing the mapper, an exception is likewise thrown. + + + + + Applies a custom mapping function to the specified input columns, while allowing a per-cursor state. The result will be in output columns. + + + applies a user defined mapping + to one or more input columns and produces one or more output columns. This transformation doesn't change the number of rows, + and can be seen as the result of applying the user's function to every row of the input data. + + In addition to the input and output objects, the provided custom function is given a state object that it can look at and/or modify. + + Check the See Also section for links to usage examples. + ]]> + + + + + + Create a custom mapping of input columns to output columns. + + The host environment + The mapping action. This must be thread-safe and free from side effects. + The contract name, used by ML.NET for loading the model. If null is specified, such a trained model would not be save-able. + The action to initialize the state object, that is called once before the cursor is initialized. + + + + Returns the of the schema which will be produced by the transformer. + Used for schema propagation and verification in a pipeline. + + + + + This transform is similar to , but it allows per-cursor state, + as well as the ability to 'accept' or 'filter out' some rows of the supplied . + The downside is that the provided lambda is eagerly called on every row (not lazily when needed), and + parallel cursors are not allowed. + + The type that describes what 'source' columns are consumed from the input . + The type that describes what new columns are added by this transform. + The type that describes per-cursor state. + + + + Create a filter transform + + The host environment + The dataview upon which we construct the transform + The function by which we transform source to destination columns and decide whether + to keep the row. + The function that is called once per cursor to initialize state. Can be null. + The schema definition overrides for + The schema definition overrides for + + + + The 'reapply' constructor. + + + + + Returns whether the given column is active in this row. + + + + + Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row. + This throws if the column is not active in this row, or if the type + differs from this column's type. + + is the column's content type. + is the output column whose getter should be returned. + + + + Un-groups vector columns into sequences of rows, inverse of Group transform. + + This can be thought of as an inverse of the . + For all specified vector columns ("pivot" columns), performs the "ungroup" (or "unroll") operation as outlined below. + + If the only pivot column is called P, and has size K, then for every row of the input we will produce + K rows, that are identical in all columns except P. The column P will become a scalar column, and this + column will hold all the original values of input's P, one value per row, in order. The order of columns + will remain the same. + + Variable-length pivot columns are supported (including zero, which will eliminate the row from the result). + Multiple pivot columns are also supported: + + A number of output rows is controlled by the 'mode' parameter. + + outer it is equal to the maximum length of pivot columns + inner it is equal to the minimum length of pivot columns + first it is equal to the length of the first pivot column + + + + + If a particular pivot column has size that is different than the number of output rows, the extra slots will + be ignored, and the missing slots will be 'padded' with default values. + + + All metadata are preserved for the retained columns. For 'unrolled' columns, all known metadata + except slot names are preserved. + + + + + + Controls the number of output rows produced by the transform + + + + + The number of output rows is equal to the minimum length of pivot columns + + + + + The number of output rows is equal to the maximum length of pivot columns + + + + + The number of output rows is equal to the length of the first pivot column. + + + + + Initializes a new instance of . + + Host Environment. + Input . This is the output from previous transform or loader. + Specifies how to unroll multiple pivot columns of different size. + Columns to unroll, or 'pivot' + + + + Information of columns to be ungrouped in . + + + + + [i] is -1 means that the i-th column in both of and + are not produced by ungrouping; we just copy the i-th input column to the i-th output column. + If [i] is not -1, the i-th output column should be produced by ungrouping the i-th input column. + + + + + Columns contained in passed in . + Note that input data's schema is stored as . + + + + + This attribute specifies how expanding input columns stored in . + + + + + Output data's produced by this + when input data's schema is . + + + + + Return an array of active input columns given the target predicate. + + + + + Determine if an output column is produced by a pivot column from input. + + Column index in + True if the specified column is produced by expanding a pivot column and false otherwise. + + + + Total number of input columns is of . + Note that the number of input columns equals to the number of output columns; that is, + is identical to the number of columns in . + + + + + Create a getter which returns the length of a vector (aka a column's value) in the input data. + + The type of the considered input vector + Column index, which should point to a vector-typed column in the input data. + Getter of the length to the considered input vector. + + + + Returns whether the given column is active in this row. + + + + + Returns the getter of an output column. + + is the output column's content type, for example, . + is the output column whose getter should be returned. + + + + Collection of extension methods for to create instances of + key to binary vector mapping transformer components + + + + + Convert the key types back to binary vector. + + The categorical transform's catalog. + Specifies the output and input columns on which the transformation should be applied. + + + + Create a , which converts key types to their corresponding binary representation of the original value. + + The categorical transform's catalog. + Name of the column resulting from the transformation of . + The data type is a known-size vector of representing the input value. + Name of column to transform. If set to , the value of the will be used as source. + The data type is a key or a known-size vector of keys. + + + + + + + + Class containing an extension method for to create instances of + user-defined one-to-one row mapping transformer components. + + + + + Create a , which applies a custom mapping of input columns to output columns. + + The class defining which columns to take from the incoming data. + The class defining which new columns are added to the data. + The transform catalog + The mapping action. This must be thread-safe and free from side effects. + If the resulting transformer needs to be save-able, the class defining should implement + and needs to be decorated with + with the provided . + In versions v1.5-preview2 and earlier, the assembly containing the class should be registered in the environment where it is loaded back + using . + The contract name, used by ML.NET for loading the model. + If is specified, resulting transformer would not be save-able. + Additional parameters for schema mapping between and input data. + Useful when dealing with annotations. + Additional parameters for schema mapping between and output data. + Useful when dealing with annotations. + + + + + + + + Create a , which applies a custom mapping of input columns to output columns, + while allowing a per-cursor state. + + The class defining which columns to take from the incoming data. + The type that describes per-cursor state. + The class defining which new columns are added to the data. + The transform catalog. + The mapping action. In addition to the input and output objects, the action is given a state object that it can look at and/or modify. + If the resulting transformer needs to be save-able, the class defining should implement + and needs to be decorated with + with the provided . + The assembly containing the class should be registered in the environment where it is loaded back + using . + The action to initialize the state object, that is called once before the cursor is initialized. + The contract name, used by ML.NET for loading the model. + If is specified, resulting transformer would not be save-able. + + + + Drop rows where a specified predicate returns true. + + The class defining which columns to take from the incoming data. + The data operations catalog. + The input data. + A predicate, that takes an input of type and returns true if the row should be filtered (dropped) and false otherwise. + + + + Drop rows where a specified predicate returns true. This filter allows to maintain a per-cursor state. + + The class defining which columns to take from the incoming data. + The type that describes per-cursor state. + The data operations catalog. + The input data. + A predicate, that takes an input of type and a state object of type + , and returns true if the row should be filtered (dropped) and false otherwise. + The action to initialize the state object, that is called once before the cursor is initialized. + + + + Creates an . + + The . + Name of the column resulting from the transformation of . + This column's data type will be the same as that of the input column. + The expression to apply to to create the column . + The names of the input columns. + + + + + + + + + Collection of extension methods for to create instances of + missing value transformer components. + + + + + Create a , which scans the data from the column specified in + and fills new column specified in with vector of bools where i-th bool has value of + if i-th element in column data has missing value and otherwise. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of . + Name of the column to copy the data from. + This estimator operates over scalar or vector of or . + + + + + + + + Create a , which copies the data from the column specified in + to a new column: . + + This transform can operate over several columns. + The transform's catalog. + The pairs of input and output columns. This estimator operates over data which is either scalar or vector of or . + + + + + + + + Create a , which copies the data from the column specified in + to a new column: and replaces missing values in it according to . + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be the same as that of the input column. + Name of the column to copy the data from. + This estimator operates over scalar or vector of or . + The type of replacement to use as specified in + If true, per-slot imputation of replacement is performed. + Otherwise, replacement value is imputed for the entire vector column. This setting is ignored for scalars and variable vectors, + where imputation is always for the entire column. + + + + + + + + Create a , which copies the data from the column specified in + to a new column: and replaces missing values in it according to . + + This transform can operate over several columns. + The transform's catalog. + The pairs of input and output columns. This estimator operates over scalar or vector of floats or doubles. + The type of replacement to use as specified in + If , per-slot imputation of replacement is performed. + Otherwise, replacement value is imputed for the entire vector column. This setting is ignored for scalars and variable vectors, + where imputation is always for the entire column. + + + + + + + + Creates a new output column, identical to the input column for everything but the missing values. + The missing values of the input column, in this new column are replaced with . + + The transform extensions' catalog. + The name of the columns to use, and per-column transformation configuraiton. + + + + Collection of extension methods for to create instances of feature + selection transformer components. + + + + + Create a , which selects the top k slots across all specified columns ordered by their mutual information with the label column. + + The transform's catalog. + Name of the column resulting from the transformation of . + Name of column to transform. If set to , the value of the will be used as source. + The name of the label column. + The maximum number of slots to preserve in the output. The number of slots to preserve is taken across all input columns. + Max number of bins used to approximate mutual information between each input column and the label column. Power of 2 recommended. + + + + + + + + + Create a , which selects the top k slots across all specified columns ordered by their mutual information with the label column. + + The transform's catalog. + Specifies the names of the input columns for the transformation, and their respective output column names. + The name of the label column. + The maximum number of slots to preserve in the output. The number of slots to preserve is taken across all input columns. + Max number of bins used to approximate mutual information between each input column and the label column. Power of 2 recommended. + + + + + + + + + Create a , which selects the slots for which the count of non-default values is greater than or equal to a threshold. + + The transform's catalog. + Describes the parameters of the feature selection process for each column pair. + + + + Create a , which selects the slots for which the count of non-default values is greater than or equal to a threshold. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be the same as the input column's data type. + Name of column to transform. If set to , the value of the will be used as source. + This estimator operates over vector or scalar of numeric, text or keys data types. + If the count of non-default values for a slot is greater than or equal to this threshold in the training data, the slot is preserved. + + + + + + + + + Create a , which selects the slots for which the count of non-default values is greater than or equal to a threshold. + + The transform's catalog. + Specifies the names of the columns on which to apply the transformation. + This estimator operates over vector or scalar of numeric, text or keys data types. + The output columns' data types will be the same as the input columns' data types. + If the count of non-default values for a slot is greater than or equal to this threshold in the training data, the slot is preserved. + + + + + + + + + Collection of extension methods for to create instances of kernel method + feature engineering transformer components. + + + + + Create an that maps input vectors to a low dimensional + feature space where inner products approximate a shift-invariant kernel function. + + The transform's catalog. + Name of the column resulting from the transformation of . + The data type on this column will be a known-sized vector of . + Name of column to transform. If set to , + the value of the will be used as source. + This estimator operates on known-sized vector of data type. + The dimension of the feature space to map the input to. + If , use both of cos and sin basis functions to create + two features for every random Fourier frequency. Otherwise, only cos bases would be used. Note that if set + to , the dimension of the output feature space will be 2*. + The argument that indicates which kernel to use. The two available implementations + are and . + The seed of the random number generator for generating the new features (if unspecified, the global random is used). + + + + + + + + + Create an that maps input vectors to a low dimensional + feature space where inner products approximate a shift-invariant kernel function. + + The transform's catalog. + The input columns to use for the transformation. + + + + The MetricsStatistics class computes summary statistics over multiple observations of a metric. + + + + + Get the mean value for the metric. + + + + + Get the standard deviation for the metric. + + + + + Get the standard error of the mean for the metric. + + + + + Get the count for the number of samples used. Useful for interpreting + the standard deviation and the standard error and building confidence intervals. + + + + + Add another metric to the set of observations. + + The metric being accumulated + + + + This interface handles the accumulation of summary statistics over multiple observations of + evaluation metrics. + + The metric results type, such as . + + + + The class holds summary + statistics over multiple observations of . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Add a set of evaluation metrics to the set of observations. + + The observed regression evaluation metric + + + + The class holds summary + statistics over multiple observations of . + + + + + Summary Statistics for . + + + + + Summary Statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Add a set of evaluation metrics to the set of observations. + + The observed binary classification evaluation metric + + + + The class holds summary + statistics over multiple observations of . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Add a set of evaluation metrics to the set of observations. + + The observed binary classification evaluation metric + + + + The class holds summary + statistics over multiple observations of . + + + + + Summary statistics for . + + + + + Summary statistics for . + + + + + Add a set of evaluation metrics to the set of observations. + + The observed regression evaluation metric + + + + This attempts to reads data in a format close to the SVM-light format, the goal being + that the majority of SVM-light formatted data should be interpretable by this loader. + + + , vectors are required to have a logical length, + and for practical reasons it's helpful if the output of this loader has a fixed + length vector type, since few estimators and no basic trainer estimators accept features + of a variable length vector types. SVM-light had no such concept. + 2. The idiom has different behavior w.r.t. parse errors. + 3. The SVM-light has some restrictions in its format that are unnatural to attempt + to restrict in the concept of this loader. + 4. Some common "extensions" of this format that have happened over the years are + accommodated where sensible, often supported by specifying some options. + + The SVM-light format can be summarized here. An SVM-light file can lead with any number + of lines starting with '#'. These are discarded. + {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}] + + Lines are not whitespace trimmed, though whitespace within the line, prior to the # + comment character (if any) are ignored. SVM-light itself uses the standard C "isspace" + function, while we respect only space and tab as whitespace. So, the spaces in the + line above could be, say, tabs, and there could even be multiple of them in sequence. + Unlike the text loader's format, for instance, there is no concept of a "blank" field + having any status. + + The feature vector is specified through a series of key/value pairs. SVM-light + requires that the keys be positive, increasing integers, except for three special keys: + cost (we interpret as Weight), qid (we interpret as GroupId) and sid (we ignore these, + but might present them as a column in the future if any of our learners implement anything + resembling slack id). The value for 'cost' is float, 'qid' is a long, and 'sid' is a long + that must be positive. If these keys are specified multiple times, the last one wins. + + SVM-light, if the tail of the value is not interpretable as a number, will ignore the tail. + E.g., "5:3.14hello" will be interpreted the same as "5:3.14". This loader does not support + this syntax. + + We do not retain the restriction on keys needing to be increasing values in our loader, + due to the way we compose our feature vectors, but it will be most efficient if this policy + is still followed. If it is followed a sort will not be required. + + This loader has the special option to read raw text for the keys and convert to feature + indices, retaining the text key values as feature names for the resulting feature vector. + The intent of this is to allow string keys, a common variant of the format, but one + emphatically not allowed by the original format. + ]]> + + + + + This class is used as input for the mapping the input as a line of text. + It is used by two custom mappers: one that maps the text to a float value indicating whether the line of text is a comment + and the other maps the text to an object of type . + + + + + This class contains the mapper that maps an to an . + The mapper parses the label and weight into floats, the group ID into ulong, the comment into a of , + the feature values into a vector of floats and the feature indices/names into a vector of of . + + + + + This class is used for mapping the vector of of field in an object + to a numeric vector of indices. This class is used in case the indices in the input file are numeric. For the case where the input file contains + feature names, instead of a , we use a . + + + + + This class is used by the + that maps a vector of indices and a vector of values into a single of values. + + + + + This class contains the mapper that maps an an + to an . + + + + + This class creates an from an , that has a single text column + called "Text". + + + + + Creates a loader that loads SVM-light format files. . + + The catalog. + The number of features in the Features column. If 0 is specified, the + loader will determine it by looking at the file sample given in . + The number of rows from the sample to be used for determining the number of features. + If the file contains zero-based indices, this parameter should be set to true. If they are one-based + it should be set to false. + A data sample to be used for determining the number of features in the Features column. + + + + + + + + + Creates a loader that loads SVM-light like files, where features are specified by their names. + + The catalog. + The number of rows from the sample to be used for determining the set of feature names. + A data sample to be used for determining the set of features names. + + + + Load a from a text file using . + + The catalog. + The path to the file. + The number of features in the Features column. If 0 is specified, the + loader will determine it by looking at the file given in . + If the file contains zero-based indices, this parameter should be set to true. If they are one-based + it should be set to false. + The number of rows from the sample to be used for determining the number of features. + + + + Load a from a text file containing features specified by feature names, + using . + + The catalog. + The path to the file. + The number of rows from the sample to be used for determining the set of feature names. + + + + Save the in SVM-light format. Four columns can be saved: a label and a features column, + and optionally a group ID column and an example weight column. + + The catalog. + The data view to save. + The stream to write to. + Whether to index the features starting at 0 or at 1. + If set to true, saves 1 for positive labels, -1 for non-positive labels and 0 for NaN. + Otherwise, saves the value of the label in the data view. + The name of the column to be saved as the label column. + The name of the column to be saved as the features column. + The name of the column to be saved as the group ID column. If null, a group ID column + will not be saved. + The name of the column to be saved as the weight column. If null, a weight column + will not be saved. + + + + The SVM-light saver is a saver class that is capable of saving the label, + features, group ID and weight columns of a dataset in SVM-light format. It is a bit + idiosyncratic in that unlike and , there is no + attempt to save all columns, just those specific columns, with other columns being dropped on + the floor. + + + + + This delegate represents a function that gets an n-gram as input, and outputs the id of + the n-gram and whether or not to continue processing n-grams. + + The array containing the n-gram + The n-gram is stored in ngram[0],...ngram[lim-1]. + The index of the column the transform is applied to. + True if processing should continue, false if it should stop. + It is true on input, so only needs to be set to false. + The n-gram slot if it was found, -1 otherwise. + + + + Collection of extension methods for to create instances of numerical + normalization components. + + + + + Normalize (rescale) several columns according to the specified . + + The transform catalog + The used to map the old values to the new ones. + The pairs of input and output columns. + + + + Create a , which normalizes based on the observed minimum and maximum values of the data. + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + + + + + + + + + Create a , which normalizes based on the observed minimum and maximum values of the data. + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + + + + + + + + + Create a , which normalizes based on the computed mean and variance of the data. + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + Whether to use CDF as the output. + + + + + + + + + Create a , which normalizes based on the computed mean and variance of the data. + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + Whether to use CDF as the output. + + + + Create a , which normalizes based on the computed mean and variance of the logarithm of the data. + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Maximum number of examples used to train the normalizer. + Whether to use CDF as the output. + + + + + + + + + Create a , which normalizes based on the computed mean and variance of the logarithm of the data. + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Maximum number of examples used to train the normalizer. + Whether to use CDF as the output. + + + + Create a , which normalizes based on the computed mean and variance of the logarithm of the data. + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Whether to map zero to zero, preserving sparsity. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Maximum number of examples used to train the normalizer. + Whether to use CDF as the output. + + + + + + + + + Create a , which normalizes based on the computed mean and variance of the logarithm of the data. + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Whether to map zero to zero, preserving sparsity. + Maximum number of examples used to train the normalizer. + Whether to use CDF as the output. + + + + Create a , which normalizes by assigning the data into bins with equal density. + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + Maximum number of bins (power of 2 recommended). + + + + + + + + + Create a , which normalizes by assigning the data into bins with equal density. + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + Maximum number of bins (power of 2 recommended). + + + + + + + + + Create a , which normalizes by assigning the data into bins based on correlation with the column. + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Name of the label column for supervised binning. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + Maximum number of bins (power of 2 recommended). + Minimum number of examples per bin. + + + + + + + + + Create a , which normalizes by assigning the data into bins based on correlation with the column. + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Name of the label column for supervised binning. + Maximum number of examples used to train the normalizer. + Whether to map zero to zero, preserving sparsity. + Maximum number of bins (power of 2 recommended). + Minimum number of examples per bin. + + + + Create a , which normalizes using statistics that are robust to outliers by centering the data around 0 (removing the median) and scales + the data according to the quantile range (defaults to the interquartile range). + + The transform catalog + Name of the column resulting from the transformation of . + The data type on this column is the same as the input column. + Name of the column to transform. If set to , the value of the will be used as source. + The data type on this column should be , or a known-sized vector of those types. + Maximum number of examples used to train the normalizer. + Whether to center the data around 0 by removing the median. Defaults to true. + Quantile min used to scale the data. Defaults to 25. + Quantile max used to scale the data. Defaults to 75. + + + + + + + + + Create a , which normalizes using statistics that are robust to outliers by centering the data around 0 (removing the median) and scales + the data according to the quantile range (defaults to the interquartile range). + + The transform catalog + The pairs of input and output columns. + The input columns must be of data type , or a known-sized vector of those types. + The data type for the output column will be the same as the associated input column. + Maximum number of examples used to train the normalizer. + Whether to center the data around 0 be removing the median. Defaults to true. + Quantile min used to scale the data. Defaults to 25. + Quantile max used to scale the data. Defaults to 75. + + + + + + + + + Normalize (rescale) columns according to specified custom parameters. + + The transform catalog + The normalization settings for all the columns + + + + Create a , which normalizes (scales) vectors in the input column to the unit norm. + The type of norm that is used is defined by . Setting to , + will apply a pre-processing step to make the specified column's mean be a zero vector. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be the same as the input column's data type. + Name of the column to normalize. If set to , the value of the + will be used as source. + This estimator operates over known-sized vectors of . + Type of norm to use to normalize each sample. The indicated norm of the resulting vector will be normalized to one. + If , subtract mean from each value before normalizing and use the raw input otherwise. + + + + + + + + + Takes column filled with a vector of floats and normalize its norm to one. Note that the allowed norm functions are defined in . + + The transform's catalog. + Describes the parameters of the lp-normalization process for each column pair. + + + + Create a , which normalizes columns individually applying global contrast normalization. + Setting to , will apply a pre-processing step to make the specified column's mean be the zero vector. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be the same as the input column's data type. + Name of the column to normalize. If set to , the value of the + will be used as source. + This estimator operates over known-sized vectors of . + If , subtract mean from each value before normalizing and use the raw input otherwise. + If , the resulting vector's standard deviation would be one. + Otherwise, the resulting vector's L2-norm would be one. + Scale features by this value. + + + + + + + + + Takes columns filled with a vector of floats and computes global contrast normalization of it. + + The transform's catalog. + Describes the parameters of the gcn-normaliztion process for each column pair. + + + + Collection of extension methods used by , + , , + and to create instances of permutation feature importance components. + + + + + Permutation Feature Importance (PFI) for Regression. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. R-squared) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible regression evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The regression catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be . + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Array of per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for Regression. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. R-squared) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible regression evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The regression catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be . + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Dictionary mapping each feature to its per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for Binary Classification. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. AUC) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible binary classification evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The binary classification catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be . + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Array of per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for Binary Classification. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. AUC) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible binary classification evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The binary classification catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be . + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Dictionary mapping each feature to its per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for MulticlassClassification. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. micro-accuracy) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible multiclass classification evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The multiclass classification catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be . + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Array of per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for MulticlassClassification. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. micro-accuracy) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible multiclass classification evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The multiclass classification catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be . + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Dictionary mapping each feature to its per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for Ranking. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. NDCG) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible ranking evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The ranking catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be or . + GroupId column name + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Array of per-feature 'contributions' to the score. + + + + Permutation Feature Importance (PFI) for Ranking. + + + + Permutation feature importance (PFI) is a technique to determine the global importance of features in a trained + machine learning model. PFI is a simple yet powerful technique motivated by Breiman in his Random Forest paper, section 10 + (Breiman. "Random Forests." Machine Learning, 2001.) + The advantage of the PFI method is that it is model agnostic -- it works with any model that can be + evaluated -- and it can use any dataset, not just the training set, to compute feature importance metrics. + + + PFI works by taking a labeled dataset, choosing a feature, and permuting the values + for that feature across all the examples, so that each example now has a random value for the feature and + the original values for all other features. The evaluation metric (e.g. NDCG) is then calculated + for this modified dataset, and the change in the evaluation metric from the original dataset is computed. + The larger the change in the evaluation metric, the more important the feature is to the model. + PFI works by performing this permutation analysis across all the features of a model, one after another. + + + In this implementation, PFI computes the change in all possible ranking evaluation metrics for each feature, and an + of objects is returned. See the sample below for an + example of working with these results to analyze the feature importance of a model. + + + + + + + + The ranking catalog. + The model on which to evaluate feature importance. + The evaluation data set. + Label column name. The column data must be or . + GroupId column name + Use features weight to pre-filter features. + Limit the number of examples to evaluate on. means up to ~2 bln examples from will be used. + The number of permutations to perform. + Dictionary mapping each feature to its per-feature 'contributions' to the score. + + + + Collection of extension methods for the . + + + + + Create a , which transforms a text column into a featurized vector of that represents normalized counts of n-grams and char-grams. + + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of . + Name of the column to transform. If set to , the value of the will be used as source. + This estimator operates over text data. + + + + + + + + + + Create a , which transforms a text column into featurized vector of that represents normalized counts of n-grams and char-grams. + + This transform can operate over several columns. + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of . + + Advanced options to the algorithm. + Name of the columns to transform. If set to , the value of the will be used as source. + This estimator operates over text data, and it can transform several columns at once, yielding one vector of + as the resulting features for all columns. + + + + + + + + + Create a , which tokenizes by splitting text into sequences of characters + using a sliding window. + + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a variable-sized vector of keys. + Name of the column to transform. If set to , the value of the + will be used as source. + This estimator operates over text data type. + To be able to distinguish the tokens, for example for debugging purposes, + you can choose to prepend a marker character, , to the beginning, + and append another marker character, , to the end of the output vector of characters. + + + + + + + + + Create a , which tokenizes incoming text in input columns and output the tokens as output columns. + + The text-related transform's catalog. + Whether to prepend a marker character, , to the beginning, + and append another marker character, , to the end of the output vector of characters. + Pairs of columns to run the tokenization on. + + + + Creates a , which normalizes incoming text in by optionally + changing case, removing diacritical marks, punctuation marks, numbers, and outputs new text as . + + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type is a scalar or a vector of text depending on the input column data type. + Name of the column to transform. If set to , + the value of the will be used as source. + This estimator operates on text or vector of text data types. + Casing text using the rules of the invariant culture. + Whether to keep diacritical marks or remove them. + Whether to keep punctuation marks or remove them. + Whether to keep numbers or remove them. + + + + + + + + + Create an , which is a text featurizer that converts a vector + of text into a numerical vector using pre-trained embeddings models. + + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of . + Name of the column to transform. If set to , + the value of the will be used as source. + This estimator operates over known-size vector of text data type. + The embeddings to use. + + + + + + + + + Create an , which is a text featurizer that converts vectors + of text into numerical vectors using pre-trained embeddings models. + + The text-related transform's catalog. + The path of the pre-trained embeddings model to use. + Name of the column resulting from the transformation of . + This column's data type will be a vector of . + Name of the column to transform. If set to , + the value of the will be used as source. + This estimator operates over known-size vector of text data type. + + + + + + + + + Create an , which is a text featurizer that converts vectors + of text into numerical vectors using pre-trained embeddings models. + + The text-related transform's catalog. + The embeddings to use. + The array columns, and per-column configurations to extract embeddings from. + + + + + + + + + Create a , which tokenizes input text using as separators. + + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a variable-size vector of text. + Name of the column to transform. If set to , the value of the will be used as source. + This estimator operates on scalar of text and vector of text data type. + The separators to use (uses space character by default). + + + + + + + + + Tokenizes incoming text in input columns, using per-column configurations, and outputs the tokens. + + The text-related transform's catalog. + Pairs of columns to run the tokenization on. + + + + Creates a which produces a vector of counts of n-grams (sequences of consecutive words) + encountered in the input text. + + The text-related transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be a vector of . + Name of the column to transform. If set to , the value of the will be used as source. + This estimator operates over vectors of keys data type. + Ngram length. + Number of tokens to skip between each n-gram. By default no token is skipped. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word or n-gram is to a document in a corpus. + When is smaller than the total number of encountered n-grams this measure is used + to determine which n-grams to keep. + + + + + + + + + Produces a bag of counts of n-grams (sequences of consecutive words) in + and outputs bag of word vector for each output in + + The text-related transform's catalog. + Pairs of columns to run the n-gram process on. + + + + Create a , which copies the data from the column specified in + to a new column: and removes predifined set of text specific for from it. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be variable-size vector of text. + Name of the column to copy the data from. + This estimator operates over vector of text. + Langauge of the input text column . + + + + + + + + + Create a , which copies the data from the column specified in + to a new column: and removes text specified in from it. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be variable-size vector of text. + Name of the column to copy the data from. + This estimator operates over a vector of text. + Array of words to remove. + + + + + + + + + Create a , which maps the column specified in + to a vector of n-gram counts in a new column named . + + + is different from in that the former + tokenizes text internally and the latter takes tokenized text as input. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be known-size vector of . + Name of the column to take the data from. + This estimator operates over vector of text. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + + + + Create a , which maps the column specified in + to a vector of n-gram counts in a new column named . + + + is different from in that the former + tokenizes text internally and the latter takes tokenized text as input. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be known-size vector of . + Name of the column to take the data from. + Maximum number of n-grams to store in the dictionary. + Separator used to separate terms/frequency pairs. + Separator used to separate terms from their frequency. + This estimator operates over vector of text. + + + + Create a , which maps the multiple columns specified in + to a vector of n-gram counts in a new column named . + + + is different from in that the former + tokenizes text internally and the latter takes tokenized text as input. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be known-size vector of . + Names of the multiple columns to take the data from. + This estimator operates over vector of text. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Maximum number of n-grams to store in the dictionary. + Statistical measure used to evaluate how important a word is to a document in a corpus. + + + + Create a , which maps the column specified in + to a vector of counts of hashed n-grams in a new column named . + + + is different from in that the former + tokenizes text internally and the latter takes tokenized text as input. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be known-size vector of . + Name of the column to take the data from. + This estimator operates over vector of text. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column. Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Create a , which maps the multiple columns specified in + to a vector of counts of hashed n-grams in a new column named . + + + is different from in that the former + tokenizes text internally and the latter takes tokenized text as input. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be known-size vector of . + Names of the multiple columns to take the data from. + This estimator operates over vector of text. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + + + + Create a , which copies the data from the column specified in + to a new column: and produces a vector of counts of hashed n-grams. + + + is different from in a way that + takes tokenized text as input while tokenizes text internally. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be vector of . + Name of the column to copy the data from. + This estimator operates over vector of key type. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + Whether to rehash unigrams. + + + + Create a , which takes the data from the multiple columns specified in + to a new column: and produces a vector of counts of hashed n-grams. + + + is different from in a way that + takes tokenized text as input while tokenizes text internally. + + The transform's catalog. + Name of the column resulting from the transformation of . + This column's data type will be vector of known size of . + Name of the multiple columns to take the data from. + This estimator operates over vector of key type. + Number of bits to hash into. Must be between 1 and 30, inclusive. + Ngram length. + Maximum number of tokens to skip when constructing an n-gram. + Whether to include all n-gram lengths up to or only . + Hashing seed. + Whether the position of each source column should be included in the hash (when there are multiple source columns). + During hashing we construct mappings between original values and the produced hash values. + Text representation of original values are stored in the slot names of the annotations for the new column.Hashing, as such, can map many initial values to one. + specifies the upper bound of the number of distinct input values mapping to a hash that should be retained. + 0 does not retain any input values. -1 retains all input values mapping to each hash. + Whether to rehash unigrams. + + + + + + + + + Produces a bag of counts of hashed n-grams for each . For each column, + are the input columns of the output column named as . + + is different from in a way that + takes tokenized text as input while tokenizes text internally. + + The text-related transform's catalog. + Pairs of columns to compute n-grams. Note that gram indices are generated by hashing. + + + + Create a , which uses LightLDA to transform text (represented as a vector of floats) + into a vector of indicating the similarity of the text with each topic identified. + + The transform's catalog. + Name of the column resulting from the transformation of . + This estimator outputs a vector of . + Name of the column to transform. If set to , the value of the will be used as source. + This estimator operates over a vector of . + + The number of topics. + Dirichlet prior on document-topic vectors. + Dirichlet prior on vocab-topic vectors. + Number of Metropolis Hasting step. + Number of iterations. + Compute log likelihood over local dataset on this iteration interval. + The number of training threads. Default value depends on number of logical processors. + The threshold of maximum count of tokens per doc. + The number of words to summarize the topic. + The number of burn-in iterations. + Reset the random number generator for each document. + + + + + + + + + Uses LightLDA to transform a document (represented as a vector of floats) + into a vector of floats over a set of topics. + + The transform's catalog. + Describes the parameters of LDA for each column pair. + +
+
diff --git a/W/Debug_Folder/Microsoft.ML.dll b/W/Debug_Folder/Microsoft.ML.dll new file mode 100644 index 000000000..dd6a5a276 Binary files /dev/null and b/W/Debug_Folder/Microsoft.ML.dll differ diff --git a/W/Debug_Folder/Microsoft.ML.xml b/W/Debug_Folder/Microsoft.ML.xml new file mode 100644 index 000000000..2c0d4a7c1 --- /dev/null +++ b/W/Debug_Folder/Microsoft.ML.xml @@ -0,0 +1,8 @@ + + + + Microsoft.ML + + + + diff --git a/W/Debug_Folder/Newtonsoft.Json.dll b/W/Debug_Folder/Newtonsoft.Json.dll new file mode 100644 index 000000000..7af125a24 Binary files /dev/null and b/W/Debug_Folder/Newtonsoft.Json.dll differ diff --git a/W/Debug_Folder/Newtonsoft.Json.xml b/W/Debug_Folder/Newtonsoft.Json.xml new file mode 100644 index 000000000..008e0ca23 --- /dev/null +++ b/W/Debug_Folder/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/W/Debug_Folder/System.Buffers.dll b/W/Debug_Folder/System.Buffers.dll new file mode 100644 index 000000000..b6d9c7782 Binary files /dev/null and b/W/Debug_Folder/System.Buffers.dll differ diff --git a/W/Debug_Folder/System.Buffers.xml b/W/Debug_Folder/System.Buffers.xml new file mode 100644 index 000000000..d3d239ec3 --- /dev/null +++ b/W/Debug_Folder/System.Buffers.xml @@ -0,0 +1,39 @@ + + + + System.Buffers + + + + Provides a resource pool that enables reusing instances of type . + The type of the objects that are in the resource pool. + + + Initializes a new instance of the class. + + + Creates a new instance of the class. + A new instance of the class. + + + Creates a new instance of the class using the specifed configuration. + The maximum length of an array instance that may be stored in the pool. + The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access. + A new instance of the class with the specified configuration. + + + Retrieves a buffer that is at least the requested length. + The minimum length of the array. + An array of type that is at least minimumLength in length. + + + Returns an array to the pool that was previously obtained using the method on the same instance. + A buffer to return to the pool that was previously obtained using the method. + Indicates whether the contents of the buffer should be cleared before reuse. If bufferLength is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If bufferLength is set to false or if the pool will release the buffer, the array's contents are left unchanged. + + + Gets a shared instance. + A shared instance. + + + \ No newline at end of file diff --git a/W/Debug_Folder/System.CodeDom.dll b/W/Debug_Folder/System.CodeDom.dll new file mode 100644 index 000000000..5597b90de Binary files /dev/null and b/W/Debug_Folder/System.CodeDom.dll differ diff --git a/W/Debug_Folder/System.Collections.Immutable.dll b/W/Debug_Folder/System.Collections.Immutable.dll new file mode 100644 index 000000000..049149f17 Binary files /dev/null and b/W/Debug_Folder/System.Collections.Immutable.dll differ diff --git a/W/Debug_Folder/System.Collections.Immutable.xml b/W/Debug_Folder/System.Collections.Immutable.xml new file mode 100644 index 000000000..9e5817348 --- /dev/null +++ b/W/Debug_Folder/System.Collections.Immutable.xml @@ -0,0 +1,4908 @@ + + + System.Collections.Immutable + + + + Represents an immutable collection of key/value pairs. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of keys in the dictionary. + The type of values in the dictionary. + + + Adds an element with the specified key and value to the dictionary. + The key of the element to add. + The value of the element to add. + A new immutable dictionary that contains the additional key/value pair. + The given key already exists in the dictionary but has a different value. + + + Adds the specified key/value pairs to the dictionary. + The key/value pairs to add. + A new immutable dictionary that contains the additional key/value pairs. + One of the given keys already exists in the dictionary but has a different value. + + + Retrieves an empty dictionary that has the same ordering and key/value comparison rules as this dictionary instance. + An empty dictionary with equivalent ordering and key/value comparison rules. + + + Determines whether the immutable dictionary contains the specified key/value pair. + The key/value pair to locate. + true if the specified key/value pair is found in the dictionary; otherwise, false. + + + Removes the element with the specified key from the immutable dictionary. + The key of the element to remove. + A new immutable dictionary with the specified element removed; or this instance if the specified key cannot be found in the dictionary. + + + Removes the elements with the specified keys from the immutable dictionary. + The keys of the elements to remove. + A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary. + + + Sets the specified key and value in the immutable dictionary, possibly overwriting an existing value for the key. + The key of the entry to add. + The key value to set. + A new immutable dictionary that contains the specified key/value pair. + + + Sets the specified key/value pairs in the immutable dictionary, possibly overwriting existing values for the keys. + The key/value pairs to set in the dictionary. If any of the keys already exist in the dictionary, this method will overwrite their previous values. + A new immutable dictionary that contains the specified key/value pairs. + + + Determines whether this dictionary contains a specified key. + The key to search for. + The matching key located in the dictionary if found, or equalkey if no match is found. + true if a match for equalKey is found; otherwise, false. + + + Represents a list of elements that cannot be modified. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the list. + + + Makes a copy of the list, and adds the specified object to the end of the copied list. + The object to add to the list. + A new list with the object added, or this list if the object is already in the list. + + + Makes a copy of the list and adds the specified objects to the end of the copied list. + The objects to add to the list. + A new list with the elements added, or this list if the elements already exist in the list. + + + Creates a list with all the items removed, but with the same sorting and ordering semantics as this list. + An empty list that has the same sorting and ordering semantics as this instance. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the that starts at the specified index and contains the specified number of elements. + The object to locate in the . This value can be null for reference types. + The zero-based starting indes of the search. 0 (zero) is valid in an empty list. + The number of elements in the section to search. + The equality comparer to use to locate item. + The zero-based index of the first occurrence of item within the range of elements in the that starts at index and contains count number of elements if found; otherwise -1. + + + Inserts the specified element at the specified index in the immutable list. + The zero-based index at which to insert the value. + The object to insert. + A new immutable list that includes the specified element. + + + Inserts the specified elements at the specified index in the immutable list. + The zero-based index at which the new elements should be inserted. + The elements to insert. + A new immutable list that includes the specified elements. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the that contains the specified number of elements and ends at the specified index. + The object to locate in the list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The number of elements in the section to search. + The equality comparer to match item. + Returns . + + + Removes the first occurrence of a specified object from this immutable list. + The object to remove from the list. + The equality comparer to use to locate value. + Returns a new list with the specified object removed. + + + Removes all the elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to remove. + A new immutable list with the elements removed. + + + Removes the element at the specified index of the immutable list. + The index of the element to remove. + A new list with the element removed. + + + Removes the specified object from the list. + The objects to remove from the list. + The equality comparer to use to determine if items match any objects in the list. + A new immutable list with the specified objects removed, if items matched objects in the list. + + + Removes a range of elements from the . + The zero-based starting index of the range of elements to remove. + The number of elements to remove. + A new immutable list with the elements removed. + + + Returns a new list with the first matching element in the list replaced with the specified element. + The element to be replaced. + The element to replace the the first occurrence of oldValue with + The equality comparer to use for matching oldValue. + A new list that contains newValue, even if oldvalue is the same as newValue. + oldValue does not exist in the list. + + + Replaces an element in the list at a given position with the specified element. + The position in the list of the element to replace. + The element to replace the old element with. + A new list that contains the new element, even if the element at the specified location is the same as the new element. + + + Represents an immutable first-in, first-out collection of objects. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the queue. + + + Returns a new queue with all the elements removed. + An empty immutable queue. + + + Removes the first element in the immutable queue, and returns the new queue. + The new immutable queue with the first element removed. This value is never null. + + + Adds an element to the end of the immutable queue, and returns the new queue. + The element to add. + The new immutable queue with the specified element added. + + + Gets a value that indicates whether this immutable queue is empty. + true if this queue is empty; otherwise, false. + + + Returns the element at the beginning of the immutable queue without removing it. + The element at the beginning of the queue. + + + Represents a set of elements that can only be modified by creating a new instance of the set. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of element stored in the set. + + + Adds the specified element to this immutable set. + The element to add. + A new set with the element added, or this set if the element is already in the set. + + + Retrieves an empty immutable set that has the same sorting and ordering semantics as this instance. + An empty set that has the same sorting and ordering semantics as this instance. + + + Determines whether this immutable set contains a specified element. + The element to locate in the set. + true if the set contains the specified value; otherwise, false. + + + Removes the elements in the specified collection from the current immutable set. + The collection of items to remove from this set. + A new set with the items removed; or the original set if none of the items were in the set. + + + Creates an immutable set that contains only elements that exist in this set and the specified set. + The collection to compare to the current . + A new immutable set that contains elements that exist in both sets. + + + Determines whether the current immutable set is a proper (strict) subset of the specified collection. + The collection to compare to the current set. + true if the current set is a proper subset of the specified collection; otherwise, false. + + + Determines whether the current immutable set is a proper (strict) superset of the specified collection. + The collection to compare to the current set. + true if the current set is a proper superset of the specified collection; otherwise, false. + + + Determines whether the current immutable set is a subset of a specified collection. + The collection to compare to the current set. + true if the current set is a subset of the specified collection; otherwise, false. + + + Determines whether the current immutable set is a superset of a specified collection. + The collection to compare to the current set. + true if the current set is a superset of the specified collection; otherwise, false. + + + Determines whether the current immutable set overlaps with the specified collection. + The collection to compare to the current set. + true if the current set and the specified collection share at least one common element; otherwise, false. + + + Removes the specified element from this immutable set. + The element to remove. + A new set with the specified element removed, or the current set if the element cannot be found in the set. + + + Determines whether the current immutable set and the specified collection contain the same elements. + The collection to compare to the current set. + true if the sets are equal; otherwise, false. + + + Creates an immutable set that contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + A new set that contains the elements that are present only in the current set or in the specified collection, but not both. + + + Determines whether the set contains a specified value. + The value to search for. + The matching value from the set, if found, or equalvalue if there are no matches. + true if a matching value was found; otherwise, false. + + + Creates a new immutable set that contains all elements that are present in either the current set or in the specified collection. + The collection to add elements from. + A new immutable set with the items added; or the original set if all the items were already in the set. + + + Represents an immutable last-in-first-out (LIFO) collection. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the stack. + + + Removes all objects from the immutable stack. + An empty immutable stack. + + + Gets a value that indicates whether this immutable stack is empty. + true if this stack is empty; otherwise,false. + + + Returns the element at the top of the immutable stack without removing it. + The element at the top of the stack. + + + Removes the element at the top of the immutable stack and returns the new stack. + The new stack; never null + + + Inserts an element at the top of the immutable stack and returns the new stack. + The element to push onto the stack. + The new stack. + + + A writable array accessor that can be converted into an instance without allocating extra memory. +NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Adds the specified item to the array. + The object to add to the array. + + + Adds the specified items to the end of the array. + The items to add to the array. + + + Adds the specified items to the end of the array. + The items to add to the array. + + + Adds the specified items to the end of the array. + The items to add to the array. + + + Adds the specified items to the end of the array. + The items to add to the array. + + + Adds the specified items to the end of the array. + The items to add to the array. + The number of elements from the source array to add. + + + Adds the specified items to the end of the array. + The items to add to the array. + The number of elements from the source array to add. + + + Adds the specified items that derive from the type currently in the array, to the end of the array. + The items to add to end of the array. + The type that derives from the type of item already in the array. + + + Adds the specified items that derive from the type currently in the array, to the end of the array. + The items to add to the end of the array. + The type that derives from the type of item already in the array. + + + Adds the specified items that derive from the type currently in the array, to the end of the array + The items to add to the end of the array. + The type that derives from the type of item already in the array. + + + Get and sets the length of the internal array. When set the internal array is reallocated to the given capacity if it is not already the specified length. + + + + Removes all items from the array. + + + Determines whether the array contains a specific value. + The object to locate in the array. + true if the object is found; otherwise, false. + + + Copies the current contents to the specified array. + The array to copy to. + The index to start the copy operation. + + + Gets or sets the number of items in the array. + The number of items in the array. + + + Gets an object that can be used to iterate through the collection. + An object that can be used to iterate through the collection. + + + Determines the index of the specified item. + The item to locate in the array. + The starting position of the search. + The number of elements to search. + The index of item if it’s found in the list; otherwise, -1. + + + Determines the index for the specified item. + The item to locate in the array. + The index at which to begin the search. + The starting position of the search. + The equality comparer to use in the search + The index of item if it’s found in the list; otherwise, -1. + + + Determines the index of a specific item in the array. + The item to locate in the array. + The index of item if it’s found in the list; otherwise, -1. + + + Determines the index of the specified item. + The item to locate in the array. + The starting position of the search. + The index of item if it’s found in the list; otherwise, -1. + + + Inserts an item in the array at the specified index. + The zero-based index at which to insert the item. + The object to insert into the array. + + + Gets or sets the item at the specified index. + The index of the item to get or set. + The item at the specified index. + The specified index is not in the array. + + + Determines the 0-based index of the last occurrence of the specified item in this array. + The item to search for. + The 0-based index where the item was found; or -1 if it could not be found. + + + Determines the 0-based index of the last occurrence of the specified item in this array. + The item to search for. + The starting position of the search. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Determines the 0-based index of the last occurrence of the specified item in this array. + The item to search for. + The starting position of the search. + The number of elements to search. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Determines the 0-based index of the last occurrence of the specified item in this array. + The item to search for. + The starting position of the search. + The number of elements to search. + The equality comparer to use in the search. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Extracts the internal array as an and replaces it with a zero length array. + + When doesn&#39;t equal . + + + Removes the specified element. + The item to remove. + true if element was found and removed; otherwise, false. + + + Removes the item at the specified index from the array. + The zero-based index of the item to remove. + + + Reverses the order of elements in the collection. + + + Sorts the contents of the array. + + + Sorts the contents of the array. + The comparer to use for sorting. If comparer is null, the default comparer for the elements type in the array is used. + + + Sorts the elements in the entire array using the specified . + The to use when comparing elements. + comparison is null. + + + Sorts the contents of the array. + The starting index for the sort. + The number of elements to include in the sort. + The comparer to use for sorting. If comparer is null, the default comparer for the elements type in the array is used. + + + Creates a new array with the current contents of this . + A new array with the contents of this . + + + Returns an immutable array that contains the current contents of this . + An immutable array that contains the current contents of this . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Returns an enumerator that iterates through the array. + An enumerator that iterates through the array. + + + Returns an enumerator that iterates through the array. + An enumerator that iterates through the array. + + + An array enumerator. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Gets the currently item. + The current item. + + + Advances to the next value in the array. + true if another item exists in the array; otherwise, false. + + + Represents an array that is immutable; meaning it cannot be changed once it is created. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of element stored by the array. + + + Returns a copy of the original array with the specified item added to the end. + The item to be added to the end of the array. + A new array with the specified item added to the end. + + + Returns a copy of the original array with the specified elements added to the end of the array. + The elements to add to the array. + A new array with the elements added. + + + Returns a copy of the original array with the specified elements added to the end of the array. + The elements to add to the array. + A new array with the elements added. + + + Returns a new immutable array that contains the elements of this array cast to a different type. + The type of array element to return. + An immutable array that contains the elements of this array, cast to a different type. If the cast fails, returns an array whose property returns true. + + + Initializes a new instance of the struct by casting the underlying array to an array of type TOther. + + + Thrown if the cast is illegal. + + + Initializes a new instance of the struct based on the contents of an existing instance, allowing a covariant static cast to efficiently reuse the existing array. + The array to initialize the array with. No copy is made. + + + + + Returns an array with all the elements removed. + An array with all of the elements removed. + + + Determines whether the specified item exists in the array. + The item to search for. + true if the specified item was found in the array; otherwise false. + + + Copies the contents of this array to the specified array starting at the specified destination index. + The array to copy to. + The index in array where copying begins. + + + Copies the specified items in this array to the specified array at the specified starting index. + The index of this array where copying begins. + The array to copy to. + The index in array where copying begins. + The number of elements to copy from this array. + + + Copies the contents of this array to the specified array. + The array to copy to. + + + Gets an empty immutable array. + + + + Indicates whether specified array is equal to this array. + An object to compare with this object. + true if other is equal to this array; otherwise, false. + + + Determines if this array is equal to the specified object. + The to compare with this array. + true if this array is equal to obj; otherwise, false. + + + Returns an enumerator that iterates through the contents of the array. + An enumerator. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Searches the array for the specified item. + The item to search for. + The index at which to begin the search. + The number of elements to search. + The equality comparer to use in the search. + The zero-based index position of the item if it is found, or -1 if it is not. + + + Searches the array for the specified item. + The item to search for. + The zero-based index position of the item if it is found, or -1 if it is not. + + + Searches the array for the specified item. + The item to search for. + The index at which to begin the search. + The zero-based index position of the item if it is found, or -1 if it is not. + + + Searches the array for the specified item. + The item to search for. + The index at which to begin the search. + The equality comparer to use in the search. + The zero-based index position of the item if it is found, or -1 if it is not. + + + Searches the array for the specified item. + The item to search for. + The index at which to begin the search. + The number of elements to search. + The zero-based index position of the item if it is found, or -1 if it is not. + + + Returns a new array with the specified value inserted at the specified position. + The 0-based index into the array at which the new item should be added. + The item to insert at the start of the array. + A new array with the item inserted at the specified index. + + + Inserts the specified values at the specified index. + The index at which to insert the value. + The elements to insert. + A new immutable array with the items inserted at the specified index. + + + Inserts the specified values at the specified index. + The index at which to insert the value. + The elements to insert. + A new immutable array with the items inserted at the specified index. + + + Gets a value indicating whether this array was declared but not initialized. + true to indicate the is null; otherwise, false. + + + Gets a value indicating whether this is empty or is not initialized. + true to indicate the is null or ; otherwise, false. + + + Gets a value indicating whether this is empty. + true to indicate the is empty; otherwise, false. + + + Gets the element at the specified index in the immutable array. + The zero-based index of the element to get. + The element at the specified index in the immutable array. + + + Searches the array for the specified item; starting at the end of the array. + The item to search for. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Searches the array for the specified item; starting at the end of the array. + The item to search for. + The index at which to begin the search. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Searches the array for the specified item; starting at the end of the array. + The item to search for. + The index at which to begin the search. + The number of elements to search. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Searches the array for the specified item; starting at the end of the array. + The item to search for. + The index at which to begin the search. + The number of elements to search. + The equality comparer to use in the search. + The 0-based index into the array where the item was found; or -1 if it could not be found. + + + Gets the number of elements in the array. + The number of elements in the array + + + Filters the elements of this array to those assignable to the specified type. + The type to filter the elements of the sequence on. + An that contains elements from the input sequence of type of TResult. + + + Returns a value that indicates if two arrays are equal. + The array to the left of the operator. + The array to the right of the operator. + true if the arrays are equal; otherwise, false. + + + Returns a value that indicates if two arrays are equal. + The array to the left of the operator. + The array to the right of the operator. + true if the arrays are equal; otherwise, false. + + + Returns a value that indicates whether two arrays are not equal. + The array to the left of the operator. + The array to the right of the operator. + true if the arrays are not equal; otherwise, false. + + + Checks for inequality between two array. + The object to the left of the operator. + The object to the right of the operator. + true if the two arrays are not equal; otherwise, false. + + + Returns an array with the first occurrence of the specified element removed from the array. If no match is found, the current array is returned. + The item to remove. + A new array with the item removed. + + + Returns an array with the first occurrence of the specified element removed from the array. + If no match is found, the current array is returned. + The item to remove. + The equality comparer to use in the search. + A new array with the specified item removed. + + + Removes all the items from the array that meet the specified condition. + The delegate that defines the conditions of the elements to remove. + A new array with items that meet the specified condition removed. + + + Returns an array with the element at the specified position removed. + The 0-based index of the element to remove from the returned array. + A new array with the item at the specified index removed. + + + Removes the specified items from this list. + The items to remove if matches are found in this list. + The equality comparer to use in the search. + A new array with the elements removed. + + + Removes the specified items from this array. + The items to remove if matches are found in this list. + The equality comparer to use in the search. + A new array with the elements removed. + + + Returns an array with the elements at the specified position removed. + The 0-based index of the starting element to remove from the array. + The number of elements to remove from the array. + The new array with the specified elements removed. + + + Removes the specified items from this array. + The items to remove if matches are found in this list. + A new array with the elements removed. + + + Removes the specified values from this list. + The items to remove if matches are found in this list. + A new list with the elements removed. + + + Finds the first element in the array equal to the specified value and replaces the value with the specified new value. + The value to find and replace in the array. + The value to replace the oldvalue with. + The equality comparer to use to compare values. + A new array that contains newValue even if the new and old values are the same. + oldValue is not found in the array. + + + Finds the first element in the array equal to the specified value and replaces the value with the specified new value. + The value to find and replace in the array. + The value to replace the oldvalue with. + A new array that contains newValue even if the new and old values are the same. + oldValue is not found in the array. + + + Replaces the item at the specified index with the specified item. + The index of the item to replace. + The item to add to the list. + The new array that contains item at the specified index. + + + Sorts the elements in the immutable array using the default comparer. + A new immutable array that contains the items in this array, in sorted order. + + + Sorts the elements in the immutable array using the specified comparer. + The implementation to use when comparing elements, or null to use the default comparer + A new immutable array that contains the items in this array, in sorted order. + + + Sorts the elements in the entire using the specified . + The to use when comparing elements. + The sorted list. + comparison is null. + + + Sorts the specified elements in the immutable array using the specified comparer. + The index of the first element to sort. + The number of elements to include in the sort. + The implementation to use when comparing elements, or null to use the default comparer + A new immutable array that contains the items in this array, in sorted order. + + + Creates a mutable array that has the same contents as this array and can be efficiently mutated across multiple operations using standard mutable interfaces. + The new builder with the same contents as this array. + + + Throws in all cases. + The item to add to the end of the array. + + + Throws in all cases. + + + Gets the number of array in the collection. + + Thrown if the property returns true. + + + Gets a value indicating whether this instance is read only. + true if this instance is read only; otherwise, false. + + + Throws in all cases. + The object to remove from the array. + Throws in all cases. + + + Returns an enumerator that iterates through the array. + An enumerator that can be used to iterate through the array. + + + Throws in all cases. + The index of the location to insert the item. + The item to insert. + + + Gets or sets the element at the specified index in the read-only list. + The zero-based index of the element to get. + The element at the specified index in the read-only list. + Always thrown from the setter. + Thrown if the property returns true. + + + Throws in all cases. + The index. + + + Gets the number of array in the collection. + + Thrown if the property returns true. + + + Gets the element at the specified index. + The index. + The element. + Thrown if the property returns true. + + + Copies this array to another array starting at the specified index. + The array to copy this array to. + The index in the destination array to start the copy operation. + + + Gets the size of the array. + + Thrown if the property returns true. + + + See the interface. + + + + Gets the sync root. + + + + Returns an enumerator that iterates through the immutable array. + An enumerator that iterates through the immutable array. + + + Throws in all cases. + The value to add to the array. + Throws in all cases. + + + Throws in all cases. + + + Throws in all cases. + The value to check for. + Throws in all cases. + + + Gets the value at the specified index. + The value to return the index of. + The value of the element at the specified index. + + + Throws in all cases. + Index that indicates where to insert the item. + The value to insert. + + + Gets a value indicating whether this instance is fixed size. + true if this instance is fixed size; otherwise, false. + + + Gets a value indicating whether this instance is read only. + true if this instance is read only; otherwise, false. + + + Gets or sets the at the specified index. + The index. + + Always thrown from the setter. + Thrown if the property returns true. + + + Throws in all cases. + The value to remove from the array. + + + Throws in all cases. + The index of the item to remove. + + + Returns a copy of the original array with the specified item added to the end. + The value to add to the end of the array. + A new array with the specified item added to the end. + + + Returns a copy of the original array with the specified elements added to the end of the array. + The elements to add to the end of the array. + A new array with the elements added to the end. + + + Returns an array with all the elements removed. + Returns an array with all the elements removed. + + + Returns a new array with the specified value inserted at the specified position. + The 0-based index into the array at which the new item should be added. + The item to insert at the start of the array. + A new array with the specified value inserted. + + + Inserts the specified values at the specified index + The index at which to insert the value. + The elements to insert. + A new array with the specified values inserted. + + + Returns an array with the first occurrence of the specified element removed from the array; if no match is found, the current array is returned. + The value to remove from the array. + The equality comparer to use in the search. + A new array with the value removed. + + + Removes all the items from the array that meet the specified condition. + The delegate that defines the conditions of the elements to remove. + A new array with items that meet the specified condition removed. + + + Returns an array with the element at the specified position removed. + The 0-based index of the element to remove from the returned array. + A new array with the specified item removed. + + + Removes the specified items from this array. + The items to remove if matches are found in this list. + The equality comparer to use in the search. + A new array with the elements removed. + + + Returns an array with the elements at the specified position removed. + The 0-based index of the starting element to remove from the array. + The number of elements to remove from the array. + The new array with the specified elements removed. + + + Finds the first element in the array equal to the specified value and replaces the value with the specified new value. + The value to find and replace in the array. + The value to replace the oldvalue with. + The equality comparer to use to compare values. + A new array that contains newValue even if the new and old values are the same. + oldValue is not found in the array. + + + Replaces the item at the specified index with the specified item. + The index of the item to replace. + The value to add to the list. + The new array that contains item at the specified index. + + + Determines whether the current collection element precedes, occurs in the same position as, or follows another element in the sort order. + The element to compare with the current instance. + The object used to compare members of the current array with the corresponding members of other array. + An integer that indicates whether the current element precedes, is in the same position or follows the other element. + The arrays are not the same length. + + + Determines whether this array is structurally equal to the specified array. + The array to compare with the current instance. + An object that determines whether the current instance and other are structurally equal. + true if the two arrays are structurally equal; otherwise, false. + + + Returns a hash code for the current instance. + An object that computes the hash code of the current object. + The hash code for the current instance. + + + Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created. +NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Searches the sorted immutable array for a specified element using the default comparer and returns the zero-based index of the element, if it’s found. + The sorted array to search. + The object to search for. + The type of element stored in the array. + The zero-based index of the item in the array, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than value or, if there is no larger element, the bitwise complement of . + value does not implement or the search encounters an element that does not implement . + + + Searches a sorted immutable array for a specified element and returns the zero-based index of the element, if it’s found. + The sorted array to search. + The object to search for. + The comparer implementation to use when comparing elements, or null to use the default comparer. + The type of element stored in the array. + The zero-based index of the item in the array, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than value or, if there is no larger element, the bitwise complement of . + comparer is null and value does not implement or the search encounters an element that does not implement . + + + Searches a sorted immutable array for a specified element and returns the zero-based index of the element, if it’s found. + The sorted array to search. + The starting index of the range to search. + The length of the range to search. + The object to search for. + The type of element stored in the array. + The zero-based index of the item in the array, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than value or, if there is no larger element, the bitwise complement of . + value does not implement or the search encounters an element that does not implement . + + + Searches a sorted immutable array for a specified element and returns the zero-based index of the element. + The sorted array to search. + The starting index of the range to search. + The length of the range to search. + The object to search for. + The comparer to use when comparing elements for equality or null to use the default comparer. + The type of element stored in the array. + The zero-based index of the item in the array, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than value or, if there is no larger element, the bitwise complement of . + comparer is null and value does not implement or the search encounters an element that does not implement . + + + Creates an immutable array that contains the specified objects. + The first object to store in the array. + The second object to store in the array. + The third object to store in the array. + The fourth object to store in the array. + The type of elements stored in the array. + An immutable array that contains the specified objects. + + + Creates an immutable array with specified objects from another array. + The source array of objects. + The index of the first element to copy from items. + The number of elements from items to include in this immutable array. + The type of elements stored in the array. + An immutable array that contains the specified objects from the source array. + + + Creates an immutable array with the specified objects from another immutable array. + The source array of objects. + The index of the first element to copy from items. + The number of elements from items to include in this immutable array. + The type of elements stored in the array. + An immutable array that contains the specified objects from the source array. + + + Creates an immutable array that contains the specified objects. + The first object to store in the array. + The second object to store in the array. + The third object to store in the array. + The type of elements stored in the array. + An immutable array that contains the specified objects. + + + Creates an immutable array from the specified array of objects. + The array of objects to populate the array with. + The type of elements stored in the array. + An immutable array that contains the array of items. + + + Creates an immutable array that contains the specified object. + The object to store in the array. + The type of elements stored in the array. + Returns an immutable array that contains the specified object. + + + Creates an empty immutable array. + The type of elements stored in the array. + An empty immutable array. + + + Creates an immutable array that contains the specified objects. + The first object to store in the array. + The second object to store in the array. + The type of elements stored in the array. + Returns an immutable array that contains the specified objects. + + + Creates a mutable array that can be converted to an without allocating new memory. + The type of elements stored in the builder. + A mutable array of the specified type that can be efficiently converted to an immutable array. + + + Creates a mutable array that can be converted to an without allocating new memory. + The initial capacity of the builder. + The type of elements stored in the builder. + A mutable array of the specified type that can be efficiently converted to an immutable array. + + + Creates a new populated with the specified items. + The elements to add to the array. + The type of element stored in the array. + An immutable array that contains the specified items. + + + Initializes a new instance of the struct. + The source array to initialize the resulting array with. + The index of the first element in the source array to include in the resulting array. + The number of elements from the source array to include in the resulting array. + The function to apply to each element from the source array included in the resulting array. + An argument to be passed to the selector mapping function. + + + + + + + Initializes a new instance of the struct. + The source array to initialize the resulting array with. + The function to apply to each element from the source array. + An argument to be passed to the selector mapping function. + + + + + + + Initializes a new instance of the struct. + The source array to initialize the resulting array with. + The function to apply to each element from the source array. + + + + + + Initializes a new instance of the struct. + The source array to initialize the resulting array with. + The index of the first element in the source array to include in the resulting array. + The number of elements from the source array to include in the resulting array. + The function to apply to each element from the source array included in the resulting array. + + + + + + Creates an immutable array from the specified collection. + The collection of objects to copy to the immutable array. + The type of elements contained in items. + An immutable array that contains the specified collection of objects. + + + Represents a hash map that mutates with little or no memory allocations and that can produce or build on immutable hash map instances very efficiently. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + + Adds the specified item to the immutable dictionary. + The object to add to the dictionary. + The dictionary is read-only. + + + Adds an element that has the specified key and value to the immutable dictionary. + The key of the element to add. + The value of the element to add. + key is null. + An element with the same key already exists in the dictionary. + The dictionary is read-only. + + + Adds a sequence of values to this collection. + The items to add to this collection. + + + Removes all items from the immutable dictionary. + The dictionary is read-only. + + + Determines whether the immutable dictionary contains a specific value. + The object to locate in the dictionary. + true if item is found in the dictionary; otherwise, false. + + + Determines whether the immutable dictionary contains an element that has the specified key. + The key to locate in the dictionary. + true if the dictionary contains an element with the key; otherwise, false. + key is null. + + + Determines whether the immutable dictionary contains an element that has the specified value. + The value to locate in the immutable dictionary. The value can be null for reference types. + true if the dictionary contains an element with the specified value; otherwise, false. + + + Gets the number of elements contained in the immutable dictionary. + The number of elements contained in the immutable dictionary. + + + Returns an enumerator that iterates through the immutable dictionary. + An enumerator that can be used to iterate through the collection. + + + Gets the value for a given key if a matching key exists in the dictionary. + The key to search for. + The default value to return if no matching key is found in the dictionary. + The value for the key, or defaultValue if no matching key was found. + + + Gets the value for a given key if a matching key exists in the dictionary. + The key to search for. + The value for the key, or default(TValue) if no matching key was found. + + + Gets or sets the element with the specified key. + The element to get or set. + The element that has the specified key. + + + Gets or sets the key comparer. + The key comparer. + + + Gets a collection that contains the keys of the immutable dictionary. + A collection that contains the keys of the object that implements the immutable dictionary. + + + Removes the first occurrence of a specific object from the immutable dictionary. + The object to remove from the dictionary. + true if item was successfully removed from the dictionary; otherwise, false. This method also returns false if item is not found in the dictionary. + The dictionary is read-only. + + + Removes the element with the specified key from the immutable dictionary. + The key of the element to remove. + true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the dictionary. + key is null. + The dictionary is read-only. + + + Removes any entries with keys that match those found in the specified sequence from the immutable dictionary. + The keys for entries to remove from the dictionary. + + + Creates an immutable dictionary based on the contents of this instance. + An immutable dictionary. + + + Determines whether this dictionary contains a specified key. + The key to search for. + The matching key located in the dictionary if found, or equalkey if no match is found. + true if a match for equalKey is found; otherwise, false. + + + Returns the value associated with the specified key. + The key whose value will be retrieved. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, returns the default value for the type of the value parameter. This parameter is passed uninitialized. + true if the object that implements the immutable dictionary contains an element with the specified key; otherwise, false. + key is null. + + + Gets or sets the value comparer. + The value comparer. + + + Gets a collection that contains the values of the immutable dictionary. + A collection that contains the values of the object that implements the dictionary. + + + + + + + + + + + + + + + + + + + Copies the elements of the dictionary to an array of type , starting at the specified array index. + The one-dimensional array of type that is the destination of the elements copied from the dictionary. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Adds an element with the provided key and value to the dictionary object. + The key of the element to add. + The value of the element to add. + + + Determines whether the dictionary object contains an element with the specified key. + The key to locate. + true if the dictionary contains an element with the key; otherwise, false. + + + Returns an object for the dictionary. + An object for the dictionary. + + + + Gets a value indicating whether the object has a fixed size. + true if the object has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element with the specified key. + The key. + + + + Gets an containing the keys of the . + An containing the keys of the object that implements . + + + Removes the element with the specified key from the dictionary. + The key of the element to remove. + + + Gets an containing the values in the . + An containing the values in the object that implements . + + + Returns an enumerator that iterates through a collection. + An enumerator object that can be used to iterate through the collection. + + + Enumerates the contents of the immutable dictionary without allocating any memory. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + + Gets the element at the current position of the enumerator. + The element in the dictionary at the current position of the enumerator. + + + Releases the resources used by the current instance of the class. + + + Advances the enumerator to the next element of the immutable dictionary. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the dictionary. + The dictionary was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the dictionary. + The dictionary was modified after the enumerator was created. + + + Gets the current element. + + + + Represents an immutable, unordered collection of keys and values. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of the keys in the dictionary. + The type of the values in the dictionary. + + + Adds an element with the specified key and value to the immutable dictionary. + The key of the element to add. + The value of the element to add. + A new immutable dictionary that contains the additional key/value pair. + The given key already exists in the dictionary but has a different value. + + + Adds the specified key/value pairs to the immutable dictionary. + The key/value pairs to add. + A new immutable dictionary that contains the additional key/value pairs. + One of the given keys already exists in the dictionary but has a different value. + + + Retrieves an empty immutable dictionary that has the same ordering and key/value comparison rules as this dictionary instance. + An empty dictionary with equivalent ordering and key/value comparison rules. + + + Determines whether this immutable dictionary contains the specified key/value pair. + The key/value pair to locate. + true if the specified key/value pair is found in the dictionary; otherwise, false. + + + Determines whether the immutable dictionary contains an element with the specified key. + The key to locate. + true if the immutable dictionary contains an element with the specified key; otherwise, false. + + + Determines whether the immutable dictionary contains an element with the specified value. + The value to locate. The value can be null for reference types. + true if the dictionary contains an element with the specified value; otherwise, false. + + + Gets the number of key/value pairs in the immutable dictionary. + The number of key/value pairs in the dictionary. + + + Gets an empty immutable dictionary + + + + Returns an enumerator that iterates through the immutable dictionary. + An enumerator that can be used to iterate through the dictionary. + + + Gets a value that indicates whether this instance of the immutable dictionary is empty. + true if this instance is empty; otherwise, false. + + + Gets the TValue associated with the specified key. + The type of the key. + The value associated with the specified key. If no results are found, the operation throws an exception. + + + Gets the key comparer for the immutable dictionary. + The key comparer. + + + Gets the keys in the immutable dictionary. + The keys in the immutable dictionary. + + + Removes the element with the specified key from the immutable dictionary. + The key of the element to remove. + A new immutable dictionary with the specified element removed; or this instance if the specified key cannot be found in the dictionary. + + + Removes the elements with the specified keys from the immutable dictionary. + The keys of the elements to remove. + A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary. + + + Sets the specified key and value in the immutable dictionary, possibly overwriting an existing value for the key. + The key of the entry to add. + The key value to set. + A new immutable dictionary that contains the specified key/value pair. + + + Sets the specified key/value pairs in the immutable dictionary, possibly overwriting existing values for the keys. + The key/value pairs to set in the dictionary. If any of the keys already exist in the dictionary, this method will overwrite their previous values. + A new immutable dictionary that contains the specified key/value pairs. + + + Creates an immutable dictionary with the same contents as this dictionary that can be efficiently mutated across multiple operations by using standard mutable interfaces. + A collection with the same contents as this dictionary that can be efficiently mutated across multiple operations by using standard mutable interfaces. + + + Determines whether this dictionary contains a specified key. + The key to search for. + The matching key located in the dictionary if found, or equalkey if no match is found. + true if a match for equalKey is found; otherwise, false. + + + Gets the value associated with the specified key. + The key whose value will be retrieved. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, contains the default value for the type of the value parameter. This parameter is passed uninitialized. + true if the object that implements the dictionary contains an element with the specified key; otherwise, false. + key is null. + + + Gets the value comparer used to determine whether values are equal. + The value comparer used to determine whether values are equal. + + + Gets the values in the immutable dictionary. + The values in the immutable dictionary. + + + Gets an instance of the immutable dictionary that uses the specified key comparer. + The key comparer to use. + An instance of the immutable dictionary that uses the given comparer. + + + Gets an instance of the immutable dictionary that uses the specified key and value comparers. + The key comparer to use. + The value comparer to use. + An instance of the immutable dictionary that uses the given comparers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copies the elements of the dictionary to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Adds an element with the provided key and value to the immutable dictionary object. + The object to use as the key of the element to add. + The object to use as the value of the element to add. + + + Clears this instance. + The dictionary object is read-only. + + + Determines whether the immutable dictionary object contains an element with the specified key. + The key to locate in the dictionary object. + true if the dictionary contains an element with the key; otherwise, false. + + + Returns an object for the immutable dictionary object. + An enumerator object for the dictionary object. + + + Gets a value indicating whether the object has a fixed size. + true if the object has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element with the specified key. + The key. + + + + Gets an containing the keys of the . + An containing the keys of the object that implements . + + + Removes the element with the specified key from the immutable dictionary object. + The key of the element to remove. + + + Gets an containing the values in the . + An containing the values in the object that implements . + + + Returns an enumerator that iterates through a collection. + An enumerator object that can be used to iterate through the collection. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Determines whether the specified immutable dictionary contains the specified key/value pair. + The immutable dictionary to search. + The key to locate in the immutable dictionary. + The value to locate on the specified key, if the key is found. + The type of the keys in the immutable dictionary. + The type of the values in the immutable dictionary. + true if this map contains the specified key/value pair; otherwise, false. + + + Creates an empty immutable dictionary. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + An empty immutable dictionary. + + + Creates an empty immutable dictionary that uses the specified key comparer. + The implementation to use to determine the equality of keys in the dictionary. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + An empty immutable dictionary. + + + Creates an empty immutable dictionary that uses the specified key and value comparers. + The implementation to use to determine the equality of keys in the dictionary. + The implementation to use to determine the equality of values in the dictionary. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + An empty immutable dictionary. + + + Creates a new immutable dictionary builder. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + The new builder. + + + Creates a new immutable dictionary builder. + The key comparer. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + The new builder. + + + Creates a new immutable dictionary builder. + The key comparer. + The value comparer. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + The new builder. + + + Creates a new immutable dictionary that contains the specified items and uses the specified key comparer. + The comparer implementation to use to compare keys for equality. + The items to add to the dictionary before it’s immutable. + The type of keys in the dictionary. + The type of values in the dictionary. + A new immutable dictionary that contains the specified items and uses the specified comparer. + + + Creates a new immutable dictionary that contains the specified items and uses the specified key comparer. + The comparer implementation to use to compare keys for equality. + The comparer implementation to use to compare values for equality. + The items to add to the dictionary before it’s immutable. + The type of keys in the dictionary. + The type of values in the dictionary. + A new immutable dictionary that contains the specified items and uses the specified comparer. + + + Creates a new immutable dictionary that contains the specified items. + The items used to populate the dictionary before it’s immutable. + The type of keys in the dictionary. + The type of values in the dictionary. + A new immutable dictionary that contains the specified items. + + + Gets the value for a given key if a matching key exists in the dictionary. + The dictionary to retrieve the value from. + The key to search for. + The type of the key. + The type of the value. + The value for the key, or default(TValue) if no matching key was found. + + + Gets the value for a given key if a matching key exists in the dictionary. + The dictionary to retrieve the value from. + The key to search for. + The default value to return if no matching key is found in the dictionary. + The type of the key. + The type of the value. + The value for the key, or defaultValue if no matching key was found. + + + Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents. + The sequence of key/value pairs to enumerate. + The type of the keys in the dictionary. + The type of the values in the dictionary. + An immutable dictionary that contains the key/value pairs in the specified sequence. + + + Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents by using the specified key comparer. + The sequence of key/value pairs to enumerate. + The key comparer to use when building the immutable dictionary. + The type of the keys in the dictionary. + The type of the values in the dictionary. + An immutable dictionary that contains the key/value pairs in the specified sequence. + + + Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents by using the specified key and value comparers. + The sequence of key/value pairs to enumerate. + The key comparer to use when building the immutable dictionary. + The value comparer to use for the immutable dictionary. + The type of the keys in the dictionary. + The type of the values in the dictionary. + An immutable dictionary that contains the key/value pairs in the specified sequence. + + + Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key comparer. + The sequence to enumerate to generate the dictionary. + The function that will produce the key for the dictionary from each sequence element. + The function that will produce the value for the dictionary from each sequence element. + The key comparer to use for the dictionary. + The type of the elements in the sequence. + The type of the keys in the resulting dictionary. + The type of the values in the resulting dictionary. + An immutable dictionary that contains the items in the specified sequence. + + + Enumerates and transforms a sequence, and produces an immutable dictionary of its contents. + The sequence to enumerate to generate the dictionary. + The function that will produce the key for the dictionary from each sequence element. + The function that will produce the value for the dictionary from each sequence element. + The type of the elements in the sequence. + The type of the keys in the resulting dictionary. + The type of the values in the resulting dictionary. + An immutable dictionary that contains the items in the specified sequence. + + + Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key and value comparers. + The sequence to enumerate to generate the dictionary. + The function that will produce the key for the dictionary from each sequence element. + The function that will produce the value for the dictionary from each sequence element. + The key comparer to use for the dictionary. + The value comparer to use for the dictionary. + The type of the elements in the sequence. + The type of the keys in the resulting dictionary. + The type of the values in the resulting dictionary. + An immutable dictionary that contains the items in the specified sequence. + + + Constructs an immutable dictionary from an existing collection of elements, applying a transformation function to the source keys. + The source collection used to generate the immutable dictionary. + The function used to transform keys for the immutable dictionary. + The type of element in the source collection. + The type of key in the resulting immutable dictionary. + The immutable dictionary that contains elements from source, with keys transformed by applying keySelector. + + + Constructs an immutable dictionary based on some transformation of a sequence. + The source collection used to generate the immutable dictionary. + The function used to transform keys for the immutable dictionary. + The key comparer to use for the dictionary. + The type of element in the source collection. + The type of key in the resulting immutable dictionary. + The immutable dictionary that contains elements from source, with keys transformed by applying keySelector. + + + Represents a hash set that mutates with little or no memory allocations and that can produce or build on immutable hash set instances very efficiently. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Adds the specified item to the immutable hash set. + The item to add. + true if the item did not already belong to the collection; otherwise, false. + + + Removes all items from the immutable hash set. + The hash set is read-only. + + + Determines whether the immutable hash set contains a specific value. + The object to locate in the hash set. + true if item is found in the hash set ; otherwise, false. + + + Gets the number of elements contained in the immutable hash set. + The number of elements contained in the immutable hash set. + + + Removes all elements in the specified collection from the current hash set. + The collection of items to remove from the set. + + + Returns an enumerator that iterates through the immutable hash set. + An enumerator that can be used to iterate through the set. + + + Modifies the current set so that it contains only elements that are also in a specified collection. + The collection to compare to the current set. + + + Determines whether the current set is a proper (strict) subset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper subset of other; otherwise, false. + + + Determines whether the current set is a proper (strict) superset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper superset of other; otherwise, false. + + + Determines whether the current set is a subset of a specified collection. + The collection to compare to the current set. + true if the current set is a subset of other; otherwise, false. + + + Determines whether the current set is a superset of a specified collection. + The collection to compare to the current set. + true if the current set is a superset of other; otherwise, false. + + + Gets or sets the key comparer. + The key comparer. + + + Determines whether the current set overlaps with the specified collection. + The collection to compare to the current set. + true if the current set and other share at least one common element; otherwise, false. + + + Removes the first occurrence of a specific object from the immutable hash set. + The object to remove from the set. + true if item was successfully removed from the set ; otherwise, false. This method also returns false if item is not found in the original set. + The set is read-only. + + + Determines whether the current set and the specified collection contain the same elements. + The collection to compare to the current set. + true if the current set is equal to other; otherwise, false. + + + Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + + + Creates an immutable hash set based on the contents of this instance. + An immutable set. + + + Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection. + The collection to compare to the current set. + + + Adds an item to the hash set. + The object to add to the set. + The set is read-only. + + + Copies the elements of the hash set to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the hash set. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Enumerates the contents of the immutable hash set without allocating any memory. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Gets the element at the current position of the enumerator. + The element at the current position of the enumerator. + + + Releases the resources used by the current instance of the class. + + + Advances the enumerator to the next element of the immutable hash set. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the hash set. + The hash set was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the hash set. + The hash set was modified after the enumerator was created. + + + Gets the current element. + + + + Represents an immutable, unordered hash set. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the hash set. + + + Adds the specified element to the hash set. + The element to add to the set. + A hash set that contains the added value and any values previously held by the object. + + + Retrieves an empty immutable hash set that has the same sorting and ordering semantics as this instance. + An empty hash set that has the same sorting and ordering semantics as this instance. + + + Determines whether this immutable hash set contains the specified element. + The object to locate in the immutable hash set. + true if item is found in the ; otherwise, false. + + + Gets the number of elements in the immutable hash set. + The number of elements in the hash set. + + + Gets an immutable hash set for this type that uses the default . + + + + Removes the elements in the specified collection from the current immutable hash set. + The collection of items to remove from this set. + A new set with the items removed; or the original set if none of the items were in the set. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Creates an immutable hash set that contains elements that exist in both this set and the specified set. + The collection to compare to the current set. + A new immutable set that contains any elements that exist in both sets. + + + Gets a value that indicates whether the current immutable hash set is empty. + true if this instance is empty; otherwise, false. + + + Determines whether the current immutable hash set is a proper (strict) subset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper subset of the specified collection; otherwise, false. + + + Determines whether the current immutable hash set is a proper (strict) superset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper superset of the specified collection; otherwise, false. + + + Determines whether the current immutable hash set is a subset of a specified collection. + The collection to compare to the current set. + true if the current set is a subset of the specified collection; otherwise, false. + + + Determines whether the current immutable hash set is a superset of a specified collection. + The collection to compare to the current set. + true if the current set is a superset of the specified collection; otherwise, false. + + + Gets the object that is used to obtain hash codes for the keys and to check the equality of values in the immutable hash set. + The comparer used to obtain hash codes for the keys and check equality. + + + Determines whether the current immutable hash set overlaps with the specified collection. + The collection to compare to the current set. + true if the current set and the specified collection share at least one common element; otherwise, false. + + + Removes the specified element from this immutable hash set. + The element to remove. + A new set with the specified element removed, or the current set if the element cannot be found in the set. + + + Determines whether the current immutable hash set and the specified collection contain the same elements. + The collection to compare to the current set. + true if the sets are equal; otherwise, false. + + + Creates an immutable hash set that contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + A new set that contains the elements that are present only in the current set or in the specified collection, but not both. + + + Creates an immutable hash set that has the same contents as this set and can be efficiently mutated across multiple operations by using standard mutable interfaces. + A set with the same contents as this set that can be efficiently mutated across multiple operations by using standard mutable interfaces. + + + Searches the set for a given value and returns the equal value it finds, if any. + The value to search for. + The value from the set that the search found, or the original value if the search yielded no match. + A value indicating whether the search was successful. + + + Creates a new immutable hash set that contains all elements that are present in either the current set or in the specified collection. + The collection to add elements from. + A new immutable hash set with the items added; or the original set if all the items were already in the set. + + + Gets an instance of the immutable hash set that uses the specified equality comparer for its search methods. + The equality comparer to use. + An instance of this immutable hash set that uses the given comparer. + + + Adds an item to the set. + The object to add to the set. + The set is read-only. + + + Removes all items from this set. + The set is read-only. + + + Copies the elements of the set to an array, starting at a particular index. + The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + See the interface. + + + + Removes the first occurrence of a specific object from the set. + The object to remove from the set. + true if the element is successfully removed; otherwise, false. + + + Returns an enumerator that iterates through the collection. + An enumerator that iterates through the collection. + + + Adds an element to the current set and returns a value that indicates whether the element was successfully added. + The element to add to the collection. + true if the element is added to the set; false if the element is already in the set. + + + Removes all elements in the specified collection from the current set. + The collection of items to remove. + + + Modifies the current set so that it contains only elements that are also in a specified collection. + The collection to compare to the current collection. + + + Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + + + Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection. + The collection to compare to the current set. + + + Copies the elements of the set to an array, starting at a particular index. + The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + See the interface. + + + + See . + + + + Returns an enumerator that iterates through a set. + An enumerator that can be used to iterate through the set. + + + Adds the specified element to this immutable set. + The element to add. + A new set with the element added, or this set if the element is already in the set. + + + Retrieves an empty set that has the same sorting and ordering semantics as this instance. + An empty set that has the same sorting or ordering semantics as this instance. + + + Removes the elements in the specified collection from the current set. + The collection of items to remove from this set. + A new set with the items removed; or the original set if none of the items were in the set. + + + Creates an immutable set that contains elements that exist in both this set and the specified set. + The collection to compare to the current set. + A new immutable set that contains any elements that exist in both sets. + + + Removes the specified element from this immutable set. + The element to remove. + A new set with the specified element removed, or the current set if the element cannot be found in the set. + + + Creates an immutable set that contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + A new set that contains the elements that are present only in the current set or in the specified collection, but not both. + + + Creates a new immutable set that contains all elements that are present in either the current set or in the specified collection. + The collection to add elements from. + A new immutable set with the items added; or the original set if all the items were already in the set. + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Creates an empty immutable hash set. + The type of items to be stored in the immutable hash set. + An empty immutable hash set. + + + Creates an empty immutable hash set that uses the specified equality comparer. + The object to use for comparing objects in the set for equality. + The type of items in the immutable hash set. + An empty immutable hash set. + + + Creates a new immutable hash set that contains the specified item. + The item to prepopulate the hash set with. + The type of items in the immutable hash set. + A new immutable hash set that contains the specified item. + + + Creates a new immutable hash set that contains the specified array of items. + An array that contains the items to prepopulate the hash set with. + The type of items in the immutable hash set. + A new immutable hash set that contains the specified items. + + + Creates a new immutable hash set that contains the specified item and uses the specified equality comparer for the set type. + The object to use for comparing objects in the set for equality. + The item to prepopulate the hash set with. + The type of items in the immutable hash set. + A new immutable hash set that contains the specified item. + + + Creates a new immutable hash set that contains the items in the specified collection and uses the specified equality comparer for the set type. + The object to use for comparing objects in the set for equality. + An array that contains the items to prepopulate the hash set with. + The type of items stored in the immutable hash set. + A new immutable hash set that contains the specified items. + + + Creates a new immutable hash set builder. + The type of items stored by the collection. + The immutable hash set builder. + + + Creates a new immutable hash set builder. + The object to use for comparing objects in the set for equality. + The type of items stored by the collection. + The new immutable hash set builder. + + + Creates a new immutable hash set prefilled with the specified items. + The items to add to the hash set. + The type of items stored by the collection. + The new immutable hash set that contains the specified items. + + + Creates a new immutable hash set that contains the specified items and uses the specified equality comparer for the set type. + The object to use for comparing objects in the set for equality. + The items add to the collection before immutability is applied. + The type of items stored in the collection. + The new immutable hash set. + + + Enumerates a sequence and produces an immutable hash set of its contents. + The sequence to enumerate. + The type of the elements in the sequence. + An immutable hash set that contains the items in the specified sequence. + + + Enumerates a sequence, produces an immutable hash set of its contents, and uses the specified equality comparer for the set type. + The sequence to enumerate. + The object to use for comparing objects in the set for equality. + The type of the elements in the sequence. + An immutable hash set that contains the items in the specified sequence and uses the specified equality comparer. + + + Contains interlocked exchange mechanisms for immutable collections. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Obtains the value from a dictionary after having added it or updated an existing entry. + The variable or field to atomically update if the specified is not in the dictionary. + The key for the value to add or update. + The function that receives the key and returns a new value to add to the dictionary when no value previously exists. + The function that receives the key and prior value and returns the new value with which to update the dictionary. + + + The added or updated value. + + + Obtains the value from a dictionary after having added it or updated an existing entry. + The variable or field to atomically update if the specified is not in the dictionary. + The key for the value to add or update. + The value to use if no previous value exists. + The function that receives the key and prior value and returns the new value with which to update the dictionary. + + + The added or updated value. + + + Atomically enqueues an element to the end of a queue. + The variable or field to atomically update. + The value to enqueue. + The type of items contained in the collection + + + Gets the value for the specified key from the dictionary, or if the key was not found, adds a new value to the dictionary. + The variable or field to update if the specified is not in the dictionary. + The key for the value to retrieve or add. + The function to execute to obtain the value to insert into the dictionary if the key is not found. + The argument to pass to the value factory. + The type of the keys contained in the collection. + The type of the values contained in the collection. + + The value at the specified key or valueFactory if the key was not present. + + + Gets the value for the specified key from the dictionary, or if the key was not found, adds a new value to the dictionary. + The variable or field to atomically update if the specified is not in the dictionary. + The key for the value to retrieve or add. + The function to execute to obtain the value to insert into the dictionary if the key is not found. This delegate will not be invoked more than once. + The type of the keys contained in the collection. + The type of the values contained in the collection. + The value at the specified key or valueFactory if the key was not present. + + + Gets the value for the specified key from the dictionary, or if the key was not found, adds a new value to the dictionary. + The variable or field to atomically update if the specified key is not in the dictionary. + The key for the value to get or add. + The value to add to the dictionary the key is not found. + The type of the keys contained in the collection. + The type of the values contained in the collection. + The value at the specified key or valueFactory if the key was not present. + + + Compares two immutable arrays for equality and, if they are equal, replaces one of the arrays. + The destination, whose value is compared with comparand and possibly replaced. + The value that replaces the destination value if the comparison results in equality. + The value that is compared to the value at location. + The type of element stored by the array. + The original value in location. + + + Sets an array to the specified array and returns a reference to the original array, as an atomic operation. + The array to set to the specified value. + The value to which the location parameter is set. + The type of element stored by the array. + The original value of location. + + + Sets an array to the specified array if the array has not been initialized. + The array to set to the specified value. + The value to which the location parameter is set, if it’s not initialized. + The type of element stored by the array. + true if the array was assigned the specified value; otherwise, false. + + + Pushes a new element onto the stack. + The stack to update. + The value to push on the stack. + The type of items in the stack. + + + Adds the specified key and value to the dictionary if the key is not in the dictionary. + The dictionary to update with the specified key and value. + The key to add, if is not already defined in the dictionary. + The value to add. + The type of the keys contained in the collection. + The type of the values contained in the collection. + true if the key is not in the dictionary; otherwise, false. + + + Atomically removes and returns the specified element at the head of the queue, if the queue is not empty. + The variable or field to atomically update. + Set to the value from the head of the queue, if the queue not empty. + The type of items in the queue. + true if the queue is not empty and the head element is removed; otherwise, false. + + + Removes an element from the top of the stack, if there is an element to remove. + The stack to update. + Receives the value removed from the stack, if the stack is not empty. + The type of items in the stack. + true if an element is removed from the stack; otherwise, false. + + + Removes the element with the specified key, if the key exists. + The dictionary to update. + The key to remove. + Receives the value of the removed item, if the dictionary is not empty. + The type of the keys contained in the collection. + The type of the values contained in the collection. + true if the key was found and removed; otherwise, false. + + + Sets the specified key to the specified value if the specified key already is set to a specific value. + The dictionary to update. + The key to update. + The new value to set. + The current value for key in order for the update to succeed. + The type of the keys contained in the collection. + The type of the values contained in the collection. + true if key and comparisonValue are present in the dictionary and comparison was updated to newValue; otherwise, false. + + + Mutates a value in-place with optimistic locking transaction semantics via a specified transformation function. The transformation is retried as many times as necessary to win the optimistic locking race. + The variable or field to be changed, which may be accessed by multiple threads. + A function that mutates the value. This function should be side-effect free, as it may run multiple times when races occur with other threads. + The argument to pass to transformer. + The type of data. + The type of argument passed to the transformer. + true if the location&#39;s value is changed by applying the result of the transformer function; false if the location&#39;s value remained the same because the last invocation of transformer returned the existing value. + + + Mutates a value in-place with optimistic locking transaction semantics via a specified transformation function. The transformation is retried as many times as necessary to win the optimistic locking race. + The variable or field to be changed, which may be accessed by multiple threads. + A function that mutates the value. This function should be side-effect free, as it may run multiple times when races occur with other threads. + The type of data. + true if the location&#39;s value is changed by applying the result of the transformer function; false if the location&#39;s value remained the same because the last invocation of transformer returned the existing value. + + + Represents a list that mutates with little or no memory allocations and that can produce or build on immutable list instances very efficiently. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Adds an item to the immutable list. + The item to add to the list. + + + Adds a series of elements to the end of this list. + The elements to add to the end of the list. + + + Searches the entire for an element using the default comparer and returns the zero-based index of the element. + The object to locate. The value can be null for reference types. + The zero-based index of item in the , if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item. + + + Searches the entire for an element using the specified comparer and returns the zero-based index of the element. + The object to locate. This value can be null for reference types. + The implementation to use when comparing elements, or null for the default comparer. + The zero-based index of item in the , if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item. + + + Searches the specified range of the for an element using the specified comparer and returns the zero-based index of the element. + The zero-based starting index of the range to search. + The length of the range to search. + The object to locate. This value can be null for reference types. + The implementation to use when comparing elements, or null for the default comparer. + The zero-based index of item in the , if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item. + + + Removes all items from the immutable list. + + + Determines whether the immutable list contains a specific value. + The object to locate in the list. + true if item is found in the list; otherwise, false. + + + Creates a new immutable list from the list represented by this builder by using the converter function. + The converter function. + The type of the output of the delegate converter function. + A new immutable list from the list represented by this builder. + + + Copies the entire immutable list to a compatible one-dimensional array, starting at the beginning of the target array. + The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing. + + + Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array. + The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array. + The zero-based index in the source immutable list at which copying begins. + The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + The number of elements to copy. + + + Gets the number of elements in this immutable list. + The number of elements in this list. + + + Determines whether the immutable list contains elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to search for. + true if the immutable list contains one or more elements that match the conditions defined by the specified predicate; otherwise, false. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T. + + + Retrieves all the elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to search for. + An immutable list containing all the elements that match the conditions defined by the specified predicate, if found; otherwise, an empty immutable list. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element. + The zero-based starting index of the search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements. + The zero-based starting index of the search. + The number of elements in the section to search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The last element that matches the conditions defined by the specified predicate, found; otherwise, the default value for type T. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index. + The zero-based starting index of the backward search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index. + The zero-based starting index of the backward search. + The number of elements in the section to search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + Performs the specified action on each element of the list. + The delegate to perform on each element of the list. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the list. + + + Creates a shallow copy of a range of elements in the source immutable list. + The zero-based index at which the range starts. + The number of elements in the range. + A shallow copy of a range of elements in the source immutable list. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based index of the first occurrence of item within the range of elements in the immutable list, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The zero-based index of the first occurrence of item within the range of elements in the immutable list that extends from index to the last element, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The number of elements in the section to search. + The zero-based index of the first occurrence of item within the range of elements in the immutable list that starts at index and contains count number of elements, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the that starts at the specified index and contains the specified number of elements. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The number of elements to search. + The value comparer to use for comparing elements for equality. + The zero-based index of the first occurrence of item within the range of elements in the immutable list that starts at index and contains count number of elements, if found; otherwise, –1 + + + Inserts an item to the immutable list at the specified index. + The zero-based index at which item should be inserted. + The object to insert into the immutable list. + + + Inserts the elements of a collection into the immutable list at the specified index. + The zero-based index at which the new elements should be inserted. + The collection whose elements should be inserted into the immutable list. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. + + + Gets or sets the value for a given index in the list. + The index of the item to get or set. + The value at the specified index. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based index of the last occurrence of item within the entire immutable list, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based starting index of the backward search. + The zero-based index of the last occurrence of item within the range of elements in the immutable list that extends from the first element to index, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based starting index of the backward search. + The number of elements in the section to search. + The zero-based index of the last occurrence of item within the range of elements in the immutable list that contains count number of elements and ends at index, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The number of elements to search. + The value comparer to use for comparing elements for equality. + The zero-based index of the first occurrence of item within the range of elements in the immutable list that starts at index and contains count number of elements, if found; otherwise, –1 + + + Removes the first occurrence of a specific object from the immutable list. + The object to remove from the list. + true if item was successfully removed from the list; otherwise, false. This method also returns false if item is not found in the list. + + + Removes all the elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to remove. + The number of elements removed from the immutable list. + + + Removes the item at the specified index of the immutable list. + The zero-based index of the item to remove from the list. + + + Reverses the order of the elements in the entire immutable list. + + + Reverses the order of the elements in the specified range of the immutable list. + The zero-based starting index of the range to reverse. + The number of elements in the range to reverse. + + + Sorts the elements in the entire immutable list by using the default comparer. + + + Sorts the elements in the entire immutable list by using the specified comparer. + The implementation to use when comparing elements, or null to use the default comparer (). + + + Sorts the elements in the entire immutable list by using the specified comparison object. + The object to use when comparing elements. + + + Sorts the elements in a range of elements in the immutable list by using the specified comparer. + The zero-based starting index of the range to sort. + The length of the range to sort. + The implementation to use when comparing elements, or null to use the default comparer (). + + + Creates an immutable list based on the contents of this instance. + An immutable list. + + + Determines whether every element in the immutable list matches the conditions defined by the specified predicate. + The delegate that defines the conditions to check against the elements. + true if every element in the immutable list matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true. + + + Gets a value indicating whether this instance is read-only. + Always false. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Copies the elements of the list to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the list. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Adds an item to the list. + The object to add to the list. + The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the collection. + + + + Removes all items from the list. + + + + Determines whether the list contains a specific value. + The object to locate in the list. + true if the is found in the list; otherwise, false. + + + + Determines the index of a specific item in the list. + The object to locate in the list. + The index of value if found in the list; otherwise, -1. + + + + Inserts an item to the list at the specified index. + The zero-based index at which value should be inserted. + The object to insert into the list. + + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the at the specified index. + The index. + + + + Removes the first occurrence of a specific object from the list. + The object to remove from the list. + + + + Enumerates the contents of a binary tree. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Gets the element at the current position of the enumerator. + The element at the current position of the enumerator. + + + Releases the resources used by the current instance of the class. + + + Advances enumeration to the next element of the immutable list. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the list. + + + Sets the enumerator to its initial position, which is before the first element in the immutable list. + + + The current element. + + + + Represents an immutable list, which is a strongly typed list of objects that can be accessed by index. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the list. + + + Adds the specified object to the end of the immutable list. + The object to add. + A new immutable list with the object added, or the current list if it already contains the specified object. + + + Adds the elements of the specified collection to the end of the immutable list. + The collection whose elements will be added to the end of the list. + A new immutable list with the elements added, or the current list if it already contains the specified elements. + + + Searches the entire sorted list for an element using the default comparer and returns the zero-based index of the element. + The object to locate. The value can be null for reference types. + The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of . + The default comparer cannot find a comparer implementation of the for type T. + + + Searches the entire sorted list for an element using the specified comparer and returns the zero-based index of the element. + The object to locate. The value can be null for reference types. + The comparer implementation to use when comparing elements or null to use the default comparer. + The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of . + comparer is null, and the default comparer cannot find an comparer implementation for type T. + + + Searches a range of elements in the sorted list for an element using the specified comparer and returns the zero-based index of the element. + The zero-based starting index of the range to search. + The length of the range to search. + The object to locate. The value can be null for reference types. + The comparer implementation to use when comparing elements, or null to use the default comparer. + The zero-based index of item in the sorted list, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of count. + index is less than 0 or count is less than 0. + index and count do not denote a valid range in the list. + comparer is null, and the default comparer cannot find an comparer implementation for type T. + + + Removes all elements from the immutable list. + An empty list that retains the same sort or unordered semantics that this instance has. + + + Determines whether this immutable list contains the specified value. + The value to locate. + true if the list contains the specified value; otherwise, false. + + + Converts the elements in the current immutable list to another type, and returns a list containing the converted elements. + A delegate that converts each element from one type to another type. + The type of the elements of the target array. + + + + Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array. + The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Copies a range of elements from the immutable list to a compatible one-dimensional array, starting at the specified index of the target array. + The zero-based index in the source immutable list at which copying begins. + The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + The number of elements to copy. + + + Copies the entire immutable list to a compatible one-dimensional array, starting at the beginning of the target array. + The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing. + + + Gets the number of elements contained in the list. + The number of elements in the list. + + + Gets an empty set with the default sort comparer. + + + + Determines whether the immutable list contains elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to search for. + true if the immutable list contains one or more elements that match the conditions defined by the specified predicate; otherwise, false. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T. + + + Retrieves all the elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to search for. + An immutable list that contains all the elements that match the conditions defined by the specified predicate, if found; otherwise, an empty immutable list. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element. + The zero-based starting index of the search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements. + The zero-based starting index of the search. + The number of elements in the section to search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index. + The zero-based starting index of the backward search. + The number of elements in the section to search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index. + The zero-based starting index of the backward search. + The delegate that defines the conditions of the element to search for. + The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1. + + + Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire immutable list. + The delegate that defines the conditions of the element to search for. + The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1. + + + Performs the specified action on each element of the immutable list. + The delegate to perform on each element of the immutable list. + + + Returns an enumerator that iterates through the immutable list. + An enumerator that can be used to iterate through the immutable list. + + + Creates a shallow copy of a range of elements in the source immutable list. + The zero-based index at which the range starts. + The number of elements in the range. + A shallow copy of a range of elements in the source immutable list. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the entire immutable list. + The object to locate in the immutable list. The value can be null for reference types. + The zero-based index of the first occurrence of value within the entire immutable list, if found; otherwise, ?1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the list that starts at the specified index and contains the specified number of elements. + The object to locate in the list The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The number of elements in the section to search. + The equality comparer to use in the search. + The zero-based index of the first occurrence of item within the range of elements in the list that starts at index and contains count number of elements, if found; otherwise, –1. + + + Inserts the specified object into the immutable list at the specified index. + The zero-based index at which to insert the object. + The object to insert. + The new immutable list after the object is inserted. + + + Inserts the elements of a collection into the immutable list at the specified index. + The zero-based index at which to insert the elements. + The collection whose elements should be inserted. + The new immutable list after the elements are inserted. + + + Gets a value that indicates whether this list is empty. + true if the list is empty; otherwise, false. + + + Gets the element at the specified index of the list. + The index of the element to retrieve. + The element at the specified index. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the list that contains the specified number of elements and ends at the specified index. + The object to locate in the list. The value can be null for reference types. + The zero-based starting index of the backward search. + The number of elements in the section to search. + The equality comparer to use in the search. + The zero-based index of the last occurrence of item within the range of elements in the list that contains count number of elements and ends at index, if found; otherwise, –1. + + + Removes the first occurrence of the specified object from this immutable list. + The object to remove. + A new list with the object removed, or this list if the specified object is not in this list. + + + Removes the first occurrence of the object that matches the specified value from this immutable list. + The value of the element to remove from the list. + The equality comparer to use in the search. + A new list with the object removed, or this list if the specified object is not in this list. + + + Removes all the elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to remove. + The new list with the elements removed. + + + Removes the element at the specified index. + The zero-based index of the element to remove. + A new list with the element removed. + + + Removes a range of elements from this immutable list. + The collection whose elements should be removed if matches are found in this list. + A new list with the elements removed. + + + Removes the specified values from this list. + The items to remove if matches are found in this list. + The equality comparer to use in the search. + A new list with the elements removed. + + + Removes a range of elements, starting from the specified index and containing the specified number of elements, from this immutable list. + The starting index to begin removal. + The number of elements to remove. + A new list with the elements removed. + + + Replaces the specified element in the immutable list with a new element. + The element to replace. + The element to replace oldValue with. + The new list with the replaced element, even if it is equal to the old element. + oldValue does not exist in the immutable list. + + + Replaces the specified element in the immutable list with a new element. + The element to replace in the list. + The element to replace oldValue with. + The comparer to use to check for equality. + A new list with the object replaced, or this list if the specified object is not in this list. + + + Reverses the order of the elements in the specified range of the immutable list. + The zero-based starting index of the range to reverse. + The number of elements in the range to reverse. + The reversed list. + + + Reverses the order of the elements in the entire immutable list. + The reversed list. + + + Replaces an element at a given position in the immutable list with the specified element. + The position in the list of the element to replace. + The element to replace the old element with. + The new list with the replaced element, even if it is equal to the old element at that position. + + + Sorts the elements in the entire immutable list using the default comparer. + The sorted list. + + + Sorts the elements in the entire immutable list using the specified comparer. + The implementation to use when comparing elements, or null to use the default comparer (). + The sorted list. + + + Sorts the elements in the entire immutable list using the specified comparer. + The delegate to use when comparing elements. + The sorted list. + + + Sorts a range of elements in the immutable list using the specified comparer. + The zero-based starting index of the range to sort. + The length of the range to sort. + The implementation to use when comparing elements, or null to use the default comparer (). + The sorted list. + + + Creates a list that has the same contents as this list and can be efficiently mutated across multiple operations using standard mutable interfaces. + The created list with the same contents as this list. + + + Determines whether every element in the immutable list matches the conditions defined by the specified predicate. + The delegate that defines the conditions to check against the elements. + true if every element in the immutable list matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true. + + + Adds the specified item to the immutable list. + The item to add. + + + + Removes all items from the immutable list. + + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Removes the first occurrence of a specific object from the immutable list. + The object to remove. + true if item was successfully removed from the list; otherwise, false. This method also returns false if item is not found in the original list. + + + Returns an enumerator that iterates through the immutable list. + An enumerator that can be used to iterate through the list. + + + Inserts an object in the immutable list at the specified index. + The zero-based index at which item should be inserted. + The object to insert. + + + + Gets or sets the value at the specified index. + + + Thrown from getter when index is negative or not less than . + Always thrown from the setter. + + + Removes the value at the specified index. + The zero-based index of the item to remove. + + + + Copies the entire immutable list to a compatible one-dimensional array, starting at the specified array index. + The one-dimensional array that is the destination of the elements copied from immutable list. + The zero-based index in array at which copying begins. + + + See the interface. + + + + See . + + + + Returns an enumerator that iterates through the immutable list. + An enumerator that can be used to iterate through the list. + + + Adds an item to the immutable list. + The object to add to the list. + The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the list. + + + + Removes all items from the immutable list. + + + + Determines whether the immutable list contains a specific value. + The object to locate in the list. + true if the object is found in the list; otherwise, false. + + + + Determines the index of a specific item in the immutable list. + The object to locate in the list. + The index of value if found in the list; otherwise, -1. + + + + Inserts an item into the immutable list at the specified index. + The zero-based index at which value should be inserted. + The object to insert into the list. + + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the at the specified index. + The index. + The value at the specified index. + Thrown from getter when index is negative or not less than . + Always thrown from the setter. + + + Removes the first occurrence of a specific object from the immutable list. + The object to remove from the list. + + + + Removes the item at the specified index of the immutable list. + The zero-based index of the item to remove. + + + + Adds the specified value to this immutable list. + The value to add. + A new list with the element added, or this list if the element is already in the list. + + + Adds the specified values to this immutable list. + The values to add. + A new list with the elements added, or this list if the elements are already in the list. + + + Retrieves an empty list that has the same sorting and ordering semantics as this instance. + An empty list that has the same sorting and ordering semantics as this instance. + + + Inserts the specified element at the specified index in the immutable list. + The index at which to insert the value. + The element to insert. + A new immutable list that includes the specified element. + + + Inserts the specified elements at the specified index in the immutable list. + The index at which to insert the elements. + The elements to insert. + A new immutable list that includes the specified elements. + + + Removes the element with the specified value from the list. + The value of the element to remove from the list. + The comparer to use to compare elements for equality. + Returns a new with the specified element removed. + + + Removes all the elements that match the conditions defined by the specified predicate. + The delegate that defines the conditions of the elements to remove. + A new immutable list with the elements removed. + + + Removes the element at the specified index of the immutable list. + The index of the element to remove. + A new list with the element removed. + + + Removes a range of elements from this immutable list that match the items specified. + The range of items to remove from the list, if found. + The equality comparer to use to compare elements. + An immutable list with the items removed. + items or equalityComparer is null. + + + Removes the specified number of elements at the specified location from this list. + The starting index of the range of elements to remove. + The number of elements to remove. + A new list with the elements removed. + + + Replaces an element in the list with the specified element. + The element to replace. + The element to replace the old element with. + The equality comparer to use in the search. + The new list. + Thrown when the old value does not exist in the list. + + + Replaces an element in the list at a given position with the specified element. + The position in the list of the element to replace. + The element to replace the old element with. + The new list. + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Creates an empty immutable list. + The type of items to be stored in the . + An empty . + + + Creates a new immutable list that contains the specified item. + The item to prepopulate the list with. + The type of items in the . + A new that contains the specified item. + + + Creates a new immutable list that contains the specified array of items. + An array that contains the items to prepopulate the list with. + The type of items in the . + A new immutable list that contains the specified items. + + + Creates a new immutable list builder. + The type of items stored by the collection. + The immutable collection builder. + + + Creates a new immutable list that contains the specified items. + The items to add to the list. + The type of items in the . + Returns an immutable list that contains the specified items. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The type of items in the list. + The zero-based index of the first occurrence of item within the range of elements in the Immutable list that extends from index to the last element, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The zero-based starting index of the search. 0 (zero) is valid in an empty list. + The number of elements in the section to search. + The type of items in the list. + The zero-based index of the first occurrence of item within the range of elements in the Immutable list that extends from index to the last element, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the list. + The list to search. + The object to locate in the list. The value can be null for reference types. + The type of items in the list. + The zero-based index of the first occurrence of item within the range of elements in the list that extends from index to the last element, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the first occurrence within the list. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The equality comparer to use in the search. + The type of items in the list. + The zero-based index of the first occurrence of item within the range of elements in the immutable list that extends from index to the last element, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The type of items in the list. + The zero-based index of the last occurrence of item within the entire the Immutable list, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The equality comparer to use in the search. + The type of items in the list. + The zero-based index of the last occurrence of item within the entire the Immutable list, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The zero-based starting index of the backward search. + The type of items in the list. + The zero-based index of the last occurrence of item within the range of elements in the Immutable list that extends from the first element to index, if found; otherwise, –1. + + + Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index. + The list to search. + The object to locate in the Immutable list. The value can be null for reference types. + The zero-based starting index of the backward search. + The number of elements in the section to search. + The type of items in the list. + The zero-based index of the last occurrence of item within the range of elements in the Immutable list that extends from the first element to index, if found; otherwise, –1. + + + Removes the specified value from this list. + The list to search. + The value to remove. + The type of items in the list. + A new immutable list with the element removed, or this list if the element is not in this list. + + + Removes the specified values from this list. + The list to search. + The items to remove if matches are found in this list. + The type of items in the list. + A new immutable list with the elements removed. + + + Replaces the first equal element in the list with the specified element. + The list to search. + The element to replace. + The element to replace the old element with. + The type of items in the list. + The new list -- even if the value being replaced is equal to the new value for that position. + Thrown when the old value does not exist in the list. + + + Enumerates a sequence and produces an immutable list of its contents. + The sequence to enumerate. + The type of the elements in the sequence. + An immutable list that contains the items in the specified sequence. + + + Enumerates the contents of an immutable queue without allocating any memory. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Gets the element at the current position of the enumerator. + The element at the current position of the enumerator. + + + Advances the enumerator to the next element of the immutable queue. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the queue. + + + Represents an immutable queue. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the queue. + + + Removes all objects from the immutable queue. + The empty immutable queue. + + + Removes the element at the beginning of the immutable queue, and returns the new queue. + The new immutable queue; never null. + + + Removes the item at the beginning of the immutable queue, and returns the new queue. + When this method returns, contains the element from the beginning of the queue. + The new immutable queue with the beginning element removed. + + + Gets an empty immutable queue. + An empty immutable queue. + + + Adds an element to the end of the immutable queue, and returns the new queue. + The element to add. + The new immutable queue. + + + Returns an enumerator that iterates through the immutable queue. + An enumerator that can be used to iterate through the queue. + + + Gets a value that indicates whether this immutable queue is empty. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + true if this queue is empty; otherwise, false. + + + Returns the element at the beginning of the immutable queue without removing it. + The element at the beginning of the queue. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + + + Removes all elements from the immutable queue. + The empty immutable queue. + + + Removes the element at the beginning of the immutable queue, and returns the new queue. + The new immutable queue; never null. + + + Adds an element to the end of the immutable queue, and returns the new queue. + The element to add. + The new immutable queue. + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Creates an empty immutable queue. + The type of items to be stored in the immutable queue. + An empty immutable queue. + + + Creates a new immutable queue that contains the specified item. + The item to prepopulate the queue with. + The type of items in the immutable queue. + A new immutable queue that contains the specified item. + + + Creates a new immutable queue that contains the specified array of items. + An array that contains the items to prepopulate the queue with. + The type of items in the immutable queue. + A new immutable queue that contains the specified items. + + + Creates a new immutable queue that contains the specified items. + The items to add to the queue before immutability is applied. + The type of elements in the queue. + An immutable queue that contains the specified items. + + + Removes the item at the beginning of the immutable queue, and returns the new queue. + The queue to remove the item from. + When this method returns, contains the item from the beginning of the queue. + The type of elements in the immutable queue. + The new queue with the item removed. + + + Represents a sorted dictionary that mutates with little or no memory allocations and that can produce or build on immutable sorted dictionary instances very efficiently. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + + Adds the specified item to the immutable sorted dictionary. + The object to add to the dictionary. + + + Adds an element that has the specified key and value to the immutable sorted dictionary. + The key of the element to add. + The value of the element to add. + + + Adds a sequence of values to the immutable sorted dictionary. + The items to add to the dictionary. + + + Removes all items from the immutable sorted dictionary. + + + Determines whether the immutable sorted dictionary contains a specific value. + The object to locate in the dictionary. + true if item is found in the dictionary; otherwise, false. + + + Determines whether the immutable sorted dictionary contains an element with the specified key. + The key to locate in the dictionary. + true if the dictionary contains an element with the key; otherwise, false. + + + Determines whether the immutable sorted dictionary contains an element with the specified value. + The value to locate in the dictionary. The value can be null for reference types. + true if the immutable sorted dictionary contains an element with the specified value; otherwise, false. + + + Gets the number of elements in this immutable sorted dictionary. + The number of elements in this dictionary. + + + Returns an enumerator that iterates through the immutable sorted dictionary. + An enumerator that can be used to iterate through the dictionary. + + + Gets the value for a given key if a matching key exists in the dictionary; otherwise the default value. + The key to search for. + The default value to return if no matching key is found in the dictionary. + The value for the key, or defaultValue if no matching key was found. + + + Gets the value for a given key if a matching key exists in the dictionary; otherwise the default value. + The key to search for. + The value for the key, or default(TValue) if no matching key was found. + + + Gets or sets the value for a specified key in the immutable sorted dictionary. + The key to retrieve the value for. + The value associated with the given key. + + + Gets or sets the key comparer. + The key comparer. + + + Gets a strongly typed, read-only collection of elements. + A strongly typed, read-only collection of elements. + + + Removes the first occurrence of a specific object from the immutable sorted dictionary. + The object to remove from the dictionary. + true if item was successfully removed from the dictionary; otherwise, false. This method also returns false if item is not found in the dictionary. + + + Removes the element with the specified key from the immutable sorted dictionary. + The key of the element to remove. + true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the original dictionary. + + + Removes any entries with keys that match those found in the specified sequence from the immutable sorted dictionary. + The keys for entries to remove from the dictionary. + + + Creates an immutable sorted dictionary based on the contents of this instance. + An immutable sorted dictionary. + + + Determines whether this dictionary contains a specified key. + The key to search for. + The matching key located in the dictionary if found, or equalkey if no match is found. + true if a match for equalKey is found; otherwise, false. + + + Gets the value associated with the specified key. + The key whose value will be retrieved. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, contains the default value for the type of the value parameter. This parameter is passed uninitialized. + true if the object that implements the dictionary contains an element with the specified key; otherwise, false. + + + Gets or sets the value comparer. + The value comparer. + + + Gets a collection that contains the values of the immutable sorted dictionary. + A collection that contains the values of the object that implements the dictionary. + + + + + + + + + + + + + + + + + + + Copies the elements of the dictionary to an array, starting at a particular array index. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Adds an element with the provided key and value to the dictionary object. + The key of the element to add. + The value of the element to add. + + + Determines whether the dictionary object contains an element with the specified key. + The key to locate. + true if the dictionary contains an element with the key; otherwise, false. + + + Returns an object for the dictionary. + An object for the dictionary. + + + Gets a value indicating whether the object has a fixed size. + true if the object has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element with the specified key. + The key. + + + + Gets an containing the keys of the . + An containing the keys of the object that implements . + + + Removes the element with the specified key from the dictionary. + The key of the element to remove. + + + Gets an containing the values in the . + An containing the values in the object that implements . + + + Returns an enumerator that iterates through a collection. + An enumerator object that can be used to iterate through the collection. + + + Enumerates the contents of a binary tree. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + + Gets the element at the current position of the enumerator. + The element at the current position of the enumerator. + + + Releases the resources used by the current instance of the class. + + + Advances the enumerator to the next element of the immutable sorted dictionary. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the sorted dictionary. + + + Sets the enumerator to its initial position, which is before the first element in the immutable sorted dictionary. + + + The current element. + + + + Represents an immutable sorted dictionary. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of the key contained in the dictionary. + The type of the value contained in the dictionary. + + + Adds an element with the specified key and value to the immutable sorted dictionary. + The key of the entry to add. + The value of entry to add. + A new immutable sorted dictionary that contains the additional key/value pair. + The given key already exists in the dictionary but has a different value. + + + Adds the specific key/value pairs to the immutable sorted dictionary. + The key/value pairs to add. + A new immutable dictionary that contains the additional key/value pairs. + One of the given keys already exists in the dictionary but has a different value. + + + Retrieves an empty immutable sorted dictionary that has the same ordering and key/value comparison rules as this dictionary instance. + An empty dictionary with equivalent ordering and key/value comparison rules. + + + Determines whether this immutable sorted dictionary contains the specified key/value pair. + The key/value pair to locate. + true if the specified key/value pair is found in the dictionary; otherwise, false. + + + Determines whether this immutable sorted map contains the specified key. + The key to locate. + true if the immutable dictionary contains the specified key; otherwise, false. + + + Determines whether the immutable sorted dictionary contains an element with the specified value. + The value to locate. The value can be null for reference types. + true if the dictionary contains an element with the specified value; otherwise, false. + + + Gets the number of key/value pairs in the immutable sorted dictionary. + The number of key/value pairs in the dictionary. + + + Gets an empty immutable sorted dictionary. + + + + Returns an enumerator that iterates through the immutable sorted dictionary. + An enumerator that can be used to iterate through the dictionary. + + + Gets a value that indicates whether this instance of the immutable sorted dictionary is empty. + true if this instance is empty; otherwise, false. + + + Gets the TValue associated with the specified key. + The key to retrieve the value for. + The value associated with the specified key. If no results are found, the operation throws an exception. + + + Gets the key comparer for the immutable sorted dictionary. + The key comparer for the dictionary. + + + Gets the keys in the immutable sorted dictionary. + The keys in the immutable dictionary. + + + Removes the element with the specified value from the immutable sorted dictionary. + The value of the element to remove. + A new immutable dictionary with the specified element removed; or this instance if the specified value cannot be found in the dictionary. + + + Removes the elements with the specified keys from the immutable sorted dictionary. + The keys of the elements to remove. + A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary. + + + Sets the specified key and value in the immutable sorted dictionary, possibly overwriting an existing value for the given key. + The key of the entry to add. + The key value to set. + A new immutable sorted dictionary that contains the specified key/value pair. + + + Sets the specified key/value pairs in the immutable sorted dictionary, possibly overwriting existing values for the keys. + The key/value pairs to set in the dictionary. If any of the keys already exist in the dictionary, this method will overwrite their previous values. + An immutable dictionary that contains the specified key/value pairs. + + + Creates an immutable sorted dictionary with the same contents as this dictionary that can be efficiently mutated across multiple operations by using standard mutable interfaces. + A collection with the same contents as this dictionary. + + + Determines whether this dictionary contains a specified key. + The key to search for. + The matching key located in the dictionary if found, or equalkey if no match is found. + true if a match for equalKey is found; otherwise, false. + + + Gets the value associated with the specified key. + The key whose value will be retrieved. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, contains the default value for the type of the value parameter. + true if the dictionary contains an element with the specified key; otherwise, false. + + + Gets the value comparer used to determine whether values are equal. + The value comparer used to determine whether values are equal. + + + Gets the values in the immutable sorted dictionary. + The values in the dictionary. + + + Gets an instance of the immutable sorted dictionary that uses the specified key comparer. + The key comparer to use. + An instance of the immutable dictionary that uses the given comparer. + + + Gets an instance of the immutable sorted dictionary that uses the specified key and value comparers. + The key comparer to use. + The value comparer to use. + An instance of the immutable dictionary that uses the given comparers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copies the elements of the dictionary to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Adds an element with the provided key and value to the dictionary object. + The object to use as the key of the element to add. + The object to use as the value of the element to add. + + + Clears this instance. + The dictionary object is read-only. + + + Determines whether the immutable dictionary object contains an element with the specified key. + The key to locate in the dictionary object. + true if the dictionary contains an element with the key; otherwise, false. + + + Returns an object for the immutable dictionary object. + An enumerator object for the dictionary object. + + + Gets a value indicating whether the object has a fixed size. + true if the object has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element with the specified key. + The key. + + + + Gets an containing the keys of the . + An containing the keys of the object that implements . + + + Removes the element with the specified key from the immutable dictionary object. + The key of the element to remove. + + + Gets an containing the values in the . + An containing the values in the object that implements . + + + Returns an enumerator that iterates through a collection. + An enumerator object that can be used to iterate through the collection. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Creates an empty immutable sorted dictionary. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + An empty immutable sorted dictionary. + + + Creates an empty immutable sorted dictionary that uses the specified key comparer. + The implementation to use to determine the equality of keys in the dictionary. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + An empty immutable sorted dictionary. + + + Creates an empty immutable sorted dictionary that uses the specified key and value comparers. + The implementation to use to determine the equality of keys in the dictionary. + The implementation to use to determine the equality of values in the dictonary. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + An empty immutable sorted dictionary. + + + Creates a new immutable sorted dictionary builder. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + The immutable collection builder. + + + Creates a new immutable sorted dictionary builder. + The key comparer. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + The immutable collection builder. + + + Creates a new immutable sorted dictionary builder. + The key comparer. + The value comparer. + The type of keys stored by the dictionary. + The type of values stored by the dictionary. + The immutable collection builder. + + + Creates an immutable sorted dictionary that contains the specified items and uses the default comparer. + The items to add to the sorted dictionary before it’s immutable. + The type of keys stored in the dictionary. + The type of values stored in the dictionary. + An immutable sorted dictionary that contains the specified items. + + + Creates a new immutable sorted dictionary from the specified range of items with the specified key comparer. + The comparer implementation to use to evaluate keys for equality and sorting. + The items to add to the sorted dictionary. + The type of keys stored in the dictionary. + The type of values stored in the dictionary. + The new immutable sorted dictionary that contains the specified items and uses the specified key comparer. + + + Creates a new immutable sorted dictionary from the specified range of items with the specified key and value comparers. + The comparer implementation to use to compare keys for equality and sorting. + The comparer implementation to use to compare values for equality and sorting. + The items to add to the sorted dictionary before it’s immutable. + The type of keys stored in the dictionary. + The type of values stored in the dictionary. + An immutable sorted dictionary that contains the specified items and uses the specified comparers. + + + Enumerates a sequence of key/value pairs and produces an immutable sorted dictionary of its contents. + The sequence of key/value pairs to enumerate. + The type of the keys in the dictionary. + The type of the values in the dictionary. + An immutable sorted dictionary that contains the key/value pairs in the specified sequence. + + + Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents by using the specified key comparer. + The sequence of key/value pairs to enumerate. + The key comparer to use when building the immutable dictionary. + The type of the keys in the dictionary. + The type of the values in the dictionary. + An immutable sorted dictionary that contains the key/value pairs in the specified sequence. + + + Enumerates a sequence of key/value pairs and produces an immutable sorted dictionary of its contents by using the specified key and value comparers. + The sequence of key/value pairs to enumerate. + The key comparer to use when building the immutable dictionary. + The value comparer to use for the immutable dictionary. + The type of the keys in the dictionary. + The type of the values in the dictionary. + An immutable sorted dictionary that contains the key/value pairs in the specified sequence. + + + Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents. + The sequence to enumerate to generate the dictionary. + The function that will produce the key for the dictionary from each sequence element. + The function that will produce the value for the dictionary from each sequence element. + The type of the elements in the sequence. + The type of the keys in the resulting dictionary. + The type of the values in the resulting dictionary. + An immutable sorted dictionary that contains the items in the specified sequence. + + + Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key comparer. + The sequence to enumerate to generate the dictionary. + The function that will produce the key for the dictionary from each sequence element. + The function that will produce the value for the dictionary from each sequence element. + The key comparer to use for the dictionary. + The type of the elements in the sequence. + The type of the keys in the resulting dictionary. + The type of the values in the resulting dictionary. + An immutable dictionary that contains the items in the specified sequence. + + + Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key and value comparers. + The sequence to enumerate to generate the dictionary. + The function that will produce the key for the dictionary from each sequence element. + The function that will produce the value for the dictionary from each sequence element. + The key comparer to use for the dictionary. + The value comparer to use for the dictionary. + The type of the elements in the sequence. + The type of the keys in the resulting dictionary. + The type of the values in the resulting dictionary. + An immutable sorted dictionary that contains the items in the specified sequence. + + + Represents a sorted set that enables changes with little or no memory allocations, and efficiently manipulates or builds immutable sorted sets. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Adds an element to the current set and returns a value to indicate whether the element was successfully added. + The element to add to the set. + true if the element is added to the set; false if the element is already in the set + + + Removes all elements from this set. + + + Determines whether the set contains the specified object. + The object to locate in the set. + true if item is found in the set; otherwise, false. + + + Gets the number of elements in the immutable sorted set. + The number of elements in this set. + + + Removes the specified set of items from the current set. + The collection of items to remove from the set. + + + Returns an enumerator that iterates through the set. + A enumerator that can be used to iterate through the set. + + + Modifies the current set so that it contains only elements that are also in a specified collection. + The collection to compare to the current set. + + + Determines whether the current set is a proper (strict) subset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper subset of other; otherwise, false. + + + Determines whether the current set is a proper (strict) superset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper superset of other; otherwise, false. + + + Determines whether the current set is a subset of a specified collection. + The collection is compare to the current set. + true if the current set is a subset of other; otherwise, false. + + + Determines whether the current set is a superset of a specified collection. + The collection to compare to the current set. + true if the current set is a superset of other; otherwise, false. + + + Gets the element of the set at the given index. + The 0-based index of the element in the set to return. + The element at the given position. + + + Gets or sets the object that is used to determine equality for the values in the immutable sorted set. + The comparer that is used to determine equality for the values in the set. + + + Gets the maximum value in the immutable sorted set, as defined by the comparer. + The maximum value in the set. + + + Gets the minimum value in the immutable sorted set, as defined by the comparer. + The minimum value in the set. + + + Determines whether the current set overlaps with the specified collection. + The collection to compare to the current set. + true if the current set and other share at least one common element; otherwise, false. + + + Removes the first occurrence of the specified object from the set. + The object to remove from the set. + true if item was removed from the set; false if item was not found in the set. + + + Returns an enumerator that iterates over the immutable sorted set in reverse order. + An enumerator that iterates over the set in reverse order. + + + Determines whether the current set and the specified collection contain the same elements. + The collection to compare to the current set. + true if the current set is equal to other; otherwise, false. + + + Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + + + Creates an immutable sorted set based on the contents of this instance. + An immutable set. + + + Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection. + The collection to compare to the current state. + + + Adds an element to the current set and returns a value to indicate whether the element was successfully added. + The element to add to the set. + + + Copies the elements of the collection to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from collection. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether this instance is read-only. + Always false. + + + Returns an enumerator that iterates through the collection. + A enumerator that can be used to iterate through the collection. + + + Copies the elements of the set to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Returns an enumerator that iterates through the collection. + A enumerator that can be used to iterate through the collection. + + + Enumerates the contents of a binary tree. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Gets the element at the current position of the enumerator. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The element at the current position of the enumerator. + + + Releases the resources used by the current instance of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Advances the enumerator to the next element of the immutable sorted set. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the sorted set. + + + Sets the enumerator to its initial position, which is before the first element in the immutable sorted set. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + The current element. + + + + Represents an immutable sorted set implementation. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of elements in the set. + + + Adds the specified value to this immutable sorted set. + The value to add. + A new set with the element added, or this set if the element is already in this set. + + + Removes all elements from the immutable sorted set. + An empty set with the elements removed. + + + Determines whether this immutable sorted set contains the specified value. + The value to check for. + true if the set contains the specified value; otherwise, false. + + + Gets the number of elements in the immutable sorted set. + The number of elements in the immutable sorted set. + + + Gets an empty immutable sorted set. + + + + Removes a specified set of items from this immutable sorted set. + The items to remove from this set. + A new set with the items removed; or the original set if none of the items were in the set. + + + Returns an enumerator that iterates through the immutable sorted set. + An enumerator that can be used to iterate through the set. + + + Gets the position within this immutable sorted set that the specified value appears in. + The value whose position is being sought. + The index of the specified item in the sorted set, if item is found. If item is not found and is less than one or more elements in this set, this method returns a negative number that is the bitwise complement of the index of the first element that is larger than value. If item is not found and is greater than any of the elements in the set, this method returns a negative number that is the bitwise complement of the index of the last element plus 1. + + + Creates an immutable sorted set that contains elements that exist both in this set and in the specified set. + The set to intersect with this one. + A new immutable sorted set that contains any elements that exist in both sets. + + + Gets a value that indicates whether this immutable sorted set is empty. + true if this set is empty; otherwise, false. + + + Determines whether the current immutable sorted set is a proper (strict) subset of the specified collection. + The collection to compare to the current set. + true if the current set is a proper subset of other; otherwise, false. + + + Determines whether the current immutable sorted set is a proper superset of a specified collection. + The collection to compare to the current set. + true if the current set is a proper superset of other; otherwise, false. + + + Determines whether the current immutable sorted set is a subset of a specified collection. + The collection to compare to the current set. + true if the current set is a subset of other; otherwise, false. + + + Determines whether the current immutable sorted set is a superset of a specified collection. + The collection to compare to the current set. + true if the current set is a superset of other; otherwise, false. + + + Gets the element of the immutable sorted set at the given index. + The index of the element to retrieve from the sorted set. + The element at the given index. + + + Gets the comparer used to sort keys in the immutable sorted set. + The comparer used to sort keys. + + + Gets the maximum value in the immutable sorted set, as defined by the comparer. + The maximum value in the set. + + + Gets the minimum value in the immutable sorted set, as defined by the comparer. + The minimum value in the set. + + + Determines whether the current immutable sorted set and a specified collection share common elements. + The collection to compare to the current set. + true if the current set and other share at least one common element; otherwise, false. + + + Removes the specified value from this immutable sorted set. + The element to remove. + A new immutable sorted set with the element removed, or this set if the element was not found in the set. + + + Returns an that iterates over this immutable sorted set in reverse order. + An enumerator that iterates over the immutable sorted set in reverse order. + + + Determines whether the current immutable sorted set and the specified collection contain the same elements. + The collection to compare to the current set. + true if the sets are equal; otherwise, false. + + + Creates an immutable sorted set that contains elements that exist either in this set or in a given sequence, but not both. + The other sequence of items. + The new immutable sorted set. + + + Creates a collection that has the same contents as this immutable sorted set that can be efficiently manipulated by using standard mutable interfaces. + The sorted set builder. + + + Searches the set for a given value and returns the equal value it finds, if any. + The value to search for. + The value from the set that the search found, or the original value if the search yielded no match. + A value indicating whether the search was successful. + + + Adds a given set of items to this immutable sorted set. + The items to add. + The new set with the items added; or the original set if all the items were already in the set. + + + Returns the immutable sorted set that has the specified key comparer. + The comparer to check for. + The immutable sorted set that has the specified key comparer. + + + Adds the specified value to the collection. + The value to add. + + + Removes all the items from the collection. + + + Copies the elements of the collection to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from collection. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + See the interface. + + + + Removes the first occurrence of a specific object from the collection. + The object to remove from the collection. + true if item was successfully removed from the collection; otherwise, false. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Inserts an item in the set at the specified index.. + The zero-based index at which item should be inserted. + The object to insert into the set. + + + See the interface. + + + + + Removes the item at the specified index. + The zero-based index of the item to remove. + + + Adds an element to the current set and returns a value to indicate if the element was successfully added. + The element to add to the set. + true if the element is added to the set; false if the element is already in the set. + + + Removes all elements in the specified collection from the current set. + The collection of items to remove from the set. + + + Modifies the current set so that it contains only elements that are also in a specified collection + The collection to compare to the current set. + + + Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + + + Modifies the current set so that it contains all elements that are present in either the current set or the specified collection. + The collection to compare to the current set. + + + Copies the elements of the set to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + See the interface. + + + + See . + + + + Returns an enumerator that iterates through a collection. + An enumerator object that can be used to iterate through the collection. + + + Adds an item to the set. + The object to add to the set. + The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the collection. + The set is read-only or has a fixed size. + + + Removes all items from the set. + + + Determines whether the set contains a specific value. + The object to locate in the set. + true if the object is found in the set; otherwise, false. + + + Determines the index of a specific item in the set. + The object to locate in the set. + The index of value if found in the list; otherwise, -1. + + + Inserts an item into the set at the specified index. + The zero-based index at which value should be inserted. + The object to insert into the set. + The set is read-only or has a fixed size. + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the at the specified index. + The index. + The . + + + + Removes the first occurrence of a specific object from the set. + The object to remove from the set. + The set is read-only or has a fixed size. + + + Removes the item at the specified index of the set. + The zero-based index of the item to remove. + The set is read-only or has a fixed size. + + + Adds the specified element to this immutable set. + The element to add. + A new set with the element added, or this set if the element is already in the set. + + + Retrieves an empty immutable set that has the same sorting and ordering semantics as this instance. + An empty set that has the same sorting and ordering semantics as this instance. + + + Removes the elements in the specified collection from the current immutable set. + The items to remove from this set. + The new set with the items removed; or the original set if none of the items were in the set. + + + Creates an immutable set that contains elements that exist in both this set and the specified set. + The collection to compare to the current set. + A new immutable set that contains any elements that exist in both sets. + + + Removes the specified element from this immutable set. + The element to remove. + A new set with the specified element removed, or the current set if the element cannot be found in the set. + + + Creates an immutable set that contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + A new set that contains the elements that are present only in the current set or in the specified collection, but not both. + + + Creates a new immutable set that contains all elements that are present in either the current set or in the specified collection. + The collection to add elements from. + A new immutable set with the items added; or the original set if all the items were already in the set. + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Creates an empty immutable sorted set. + The type of items to be stored in the immutable set. + An empty immutable sorted set. + + + Creates an empty immutable sorted set that uses the specified comparer. + The implementation to use when comparing items in the set. + The type of items in the immutable set. + An empty immutable set. + + + Creates a new immutable sorted set that contains the specified item. + The item to prepopulate the set with. + The type of items in the immutable set. + A new immutable set that contains the specified item. + + + Creates a new immutable sorted set that contains the specified array of items. + An array that contains the items to prepopulate the set with. + The type of items in the immutable set. + A new immutable set that contains the specified items. + + + Creates a new immutable sorted set that contains the specified item and uses the specified comparer. + The implementation to use when comparing items in the set. + The item to prepopulate the set with. + The type of items stored in the immutable set. + A new immutable set that contains the specified item. + + + Creates a new immutable sorted set that contains the specified array of items and uses the specified comparer. + The implementation to use when comparing items in the set. + An array that contains the items to prepopulate the set with. + The type of items in the immutable set. + A new immutable set that contains the specified items. + + + Returns a collection that can be used to build an immutable sorted set. + The type of items stored by the collection. + The immutable collection builder. + + + Returns a collection that can be used to build an immutable sorted set. + The comparer used to compare items in the set for equality. + The type of items stored by the collection. + The immutable collection. + + + Creates a new immutable collection that contains the specified items. + The items to add to the set with before it’s immutable. + The type of items stored by the collection. + The new immutable set that contains the specified items. + + + Creates a new immutable collection that contains the specified items. + The comparer to use to compare elements in this set. + The items to add to the set before it’s immutable. + The type of items stored by the collection. + The new immutable set that contains the specified items. + + + Enumerates a sequence and produces an immutable sorted set of its contents. + The sequence to enumerate. + The type of the elements in the sequence. + An immutable sorted set that contains the items in the specified sequence. + + + Enumerates a sequence, produces an immutable sorted set of its contents, and uses the specified comparer. + The sequence to enumerate. + The comparer to use for initializing and adding members to the sorted set. + The type of the elements in the sequence. + An immutable sorted set that contains the items in the specified sequence. + + + Enumerates the contents of an immutable stack without allocating any memory. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + + Gets the element at the current position of the enumerator. + The element at the current position of the enumerator. + + + Advances the enumerator to the next element of the immutable stack. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the stack. + + + Represents an immutable stack. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + The type of element on the stack. + + + Removes all objects from the immutable stack. + An empty immutable stack. + + + Gets an empty immutable stack. + An empty immutable stack. + + + Returns an enumerator that iterates through the immutable stack. + An enumerator that can be used to iterate through the stack. + + + Gets a value that indicates whether this instance of the immutable stack is empty. + true if this instance is empty; otherwise, false. + + + Returns the object at the top of the stack without removing it. + The object at the top of the stack. + + + Removes the element at the top of the immutable stack and returns the stack after the removal. + A stack; never null. + + + Removes the specified element from the immutable stack and returns the stack after the removal. + The value to remove from the stack. + A stack; never null. + + + Inserts an object at the top of the immutable stack and returns the new stack. + The object to push onto the stack. + The new stack. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + + + Removes all elements from the immutable stack. + The empty immutable stack. + + + Removes the element at the top of the immutable stack and returns the new stack. + The new stack; never null. + + + Inserts an element at the top of the immutable stack and returns the new stack. + The element to push onto the stack. + The new stack. + + + Provides a set of initialization methods for instances of the class. + NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Creates an empty immutable stack. + The type of items to be stored in the immutable stack. + An empty immutable stack. + + + Creates a new immutable stack that contains the specified item. + The item to prepopulate the stack with. + The type of items in the immutable stack. + A new immutable collection that contains the specified item. + + + Creates a new immutable stack that contains the specified array of items. + An array that contains the items to prepopulate the stack with. + The type of items in the immutable stack. + A new immutable stack that contains the specified items. + + + Creates a new immutable stack that contains the specified items. + The items to add to the stack before it’s immutable. + The type of items in the stack. + An immutable stack that contains the specified items. + + + Removes the specified item from an immutable stack. + The stack to modify. + The item to remove from the stack. + The type of items contained in the stack. + A stack; never null. + + + LINQ extension method overrides that offer greater efficiency for than the standard LINQ methods +NuGet package: System.Collections.Immutable (about immutable collections and how to install) + + + Applies a function to a sequence of elements in a cumulative way. + The collection to apply the function to. + A function to be invoked on each element, in a cumulative way. + The type of element contained by the collection. + The final value after the cumulative function has been applied to all elements. + + + Applies a function to a sequence of elements in a cumulative way. + The collection to apply the function to. + The initial accumulator value. + A function to be invoked on each element, in a cumulative way. + The type of the accumulated value. + The type of element contained by the collection. + The final accumulator value. + + + Applies a function to a sequence of elements in a cumulative way. + The collection to apply the function to. + The initial accumulator value. + A function to be invoked on each element, in a cumulative way. + + The type of the accumulated value. + The type of result returned by the result selector. + The type of element contained by the collection. + The final accumulator value. + + + Gets a value indicating whether all elements in this array match a given condition. + The array to check for matches. + The predicate. + The type of element contained by the collection. + true if every element of the source sequence passes the test in the specified predicate; otherwise, false. + + + Gets a value indicating whether the array contains any elements. + The array to check for elements. + The type of element contained by the collection. + true if the array contains an elements; otherwise, false. + + + Returns a value indicating whether this collection contains any elements. + The builder to check for matches. + The type of elements in the array. + true if the array builder contains any elements; otherwise, false. + + + Gets a value indicating whether the array contains any elements that match a specified condition. + The array to check for elements. + The delegate that defines the condition to match to an element. + The type of element contained by the collection. + true if an element matches the specified condition; otherwise, false. + + + Returns the element at a specified index in the array. + The array to find an element in. + The index for the element to retrieve. + The type of element contained by the collection. + The item at the specified index. + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + The array to find an element in. + The index for the element to retrieve. + The type of element contained by the collection. + The item at the specified index, or the default value if the index is not found. + + + Returns the first element in an array. + The array to get an item from. + The type of element contained by the collection. + The first item in the array. + If the array is empty. + + + Returns the first element in the collection. + The builder to retrieve an item from. + The type of items in the array. + The first item in the list. + If the array is empty. + + + Returns the first element in a sequence that satisfies a specified condition. + The array to get an item from. + The delegate that defines the conditions of the element to search for. + The type of element contained by the collection. + The first item in the list if it meets the condition specified by predicate. + If the array is empty. + + + Returns the first element of a sequence, or a default value if the sequence contains no elements. + The array to retrieve items from. + The type of element contained by the collection. + The first item in the list, if found; otherwise the default value for the item type. + + + Returns the first element in the collection, or the default value if the collection is empty. + The builder to retrieve an element from. + The type of item in the builder. + The first item in the list, if found; otherwise the default value for the item type. + + + Returns the first element of the sequence that satisfies a condition or a default value if no such element is found. + The array to retrieve elments from. + The delegate that defines the conditions of the element to search for. + The type of element contained by the collection. + The first item in the list, if found; otherwise the default value for the item type. + + + Returns the last element in the collection. + The builder to retrieve elements from. + The type of item in the builder. + The last element in the builder. + Thrown if the collection is empty. + + + Returns the last element of a sequence that satisfies a specified condition. + The array to retrieve elements from. + The delegate that defines the conditions of the element to retrieve. + The type of element contained by the collection. + The last element of the array that satisfies the predicate condition. + Thrown if the collection is empty. + + + Returns the last element of the array. + The array to retrieve items from. + The type of element contained by the array. + The last element in the array. + Thrown if the collection is empty. + + + Returns the last element of a sequence, or a default value if the sequence contains no elements. + The array to retrieve items from. + The type of element contained by the collection. + The last element of a sequence, or a default value if the sequence contains no elements. + + + Returns the last element in the collection, or the default value if the collection is empty. + The builder to retrieve an element from. + The type of item in the builder. + The last element of a sequence, or a default value if the sequence contains no elements. + + + Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. + The array to retrieve an element from. + The delegate that defines the conditions of the element to search for. + The type of element contained by the collection. + The last element of a sequence, or a default value if the sequence contains no elements. + + + Projects each element of a sequence into a new form. + The immutable array to select items from. + A transform function to apply to each element. + The type of element contained by the collection. + The type of the result element. + An whose elements are the result of invoking the transform function on each element of source. + + + Projects each element of a sequence to an , flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. + The immutable array. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + The type of the elements of immutableArray. + The type of the intermediate elements collected by collectionSelector. + The type of the elements of the resulting sequence. + An whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of immutableArray and then mapping each of those sequence elements and their corresponding source element to a result element. + + + Determines whether two sequences are equal according to an equality comparer. + The array to use for comparison. + The items to use for comparison. + The comparer to use to check for equality. + The type of element in the compared array. + The type of element contained by the collection. + true to indicate the sequences are equal; otherwise, false. + + + Determines whether two sequences are equal according to an equality comparer. + The array to use for comparison. + The items to use for comparison. + The comparer to use to check for equality. + The type of element in the compared array. + The type of element contained by the collection. + true to indicate the sequences are equal; otherwise, false. + + + Determines whether two sequences are equal according to an equality comparer. + The array to use for comparison. + The items to use for comparison. + The comparer to use to check for equality. + The type of element in the compared array. + The type of element contained by the collection. + true to indicate the sequences are equal; otherwise, false. + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + The array to retrieve the element from. + The type of element contained by the collection. + The element in the sequence. + + + Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. + + + The type of element contained by the collection. + Returns . + + + Returns the only element of the array, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. + + The type of element contained by the collection. + The element in the array, or the default value if the array is empty. + + + Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. + The array to get the element from. + The condition the element must satisfy. + The type of element contained by the collection. + The element if it satisfies the specified condition; otherwise the default element. + + + Copies the contents of this array to a mutable array. + + The type of element contained by the collection. + The newly instantiated array. + + + Creates a dictionary based on the contents of this array. + The array to create a dictionary from. + The key selector. + The type of the key. + The type of element contained by the collection. + The newly initialized dictionary. + + + Creates a dictionary based on the contents of this array. + The array to create a dictionary from. + The key selector. + The comparer to initialize the dictionary with. + The type of the key. + The type of element contained by the collection. + The newly initialized dictionary. + + + Creates a dictionary based on the contents of this array. + The array to create a dictionary from. + The key selector. + The element selector. + The comparer to initialize the dictionary with. + The type of the key. + The type of the element. + The type of element contained by the collection. + The newly initialized dictionary. + + + Creates a dictionary based on the contents of this array. + The array to create a dictionary from. + The key selector. + The element selector. + The type of the key. + The type of the element. + The type of element contained by the collection. + The newly initialized dictionary. + + + Filters a sequence of values based on a predicate. + The array to filter. + The condition to use for filtering the array content. + The type of element contained by the collection. + Returns that contains elements that meet the condition. + + + \ No newline at end of file diff --git a/W/Debug_Folder/System.Memory.dll b/W/Debug_Folder/System.Memory.dll new file mode 100644 index 000000000..bdfc501e9 Binary files /dev/null and b/W/Debug_Folder/System.Memory.dll differ diff --git a/W/Debug_Folder/System.Memory.xml b/W/Debug_Folder/System.Memory.xml new file mode 100644 index 000000000..4d12fd71e --- /dev/null +++ b/W/Debug_Folder/System.Memory.xml @@ -0,0 +1,355 @@ + + + System.Memory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/W/Debug_Folder/System.Numerics.Vectors.dll b/W/Debug_Folder/System.Numerics.Vectors.dll new file mode 100644 index 000000000..ce46d5be8 Binary files /dev/null and b/W/Debug_Folder/System.Numerics.Vectors.dll differ diff --git a/W/Debug_Folder/System.Numerics.Vectors.xml b/W/Debug_Folder/System.Numerics.Vectors.xml new file mode 100644 index 000000000..51297939a --- /dev/null +++ b/W/Debug_Folder/System.Numerics.Vectors.xml @@ -0,0 +1,2597 @@ + + + + System.Numerics.Vectors + + + + Represents a 3x2 matrix. + + + Creates a 3x2 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a rotation matrix using the given rotation in radians. + The amount of rotation, in radians. + The rotation matrix. + + + Creates a rotation matrix using the specified rotation in radians and a center point. + The amount of rotation, in radians. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified X and Y components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. + The uniform scale to use. + The center offset. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The center point. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the given scale. + The uniform scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale with an offset from the specified center point. + The scale to use. + The center offset. + The scaling matrix. + + + Creates a skew matrix from the specified angles in radians. + The X angle, in radians. + The Y angle, in radians. + The skew matrix. + + + Creates a skew matrix from the specified angles in radians and a center point. + The X angle, in radians. + The Y angle, in radians. + The center point. + The skew matrix. + + + Creates a translation matrix from the specified 2-dimensional vector. + The translation position. + The translation matrix. + + + Creates a translation matrix from the specified X and Y components. + The X position. + The Y position. + The translation matrix. + + + Returns a value that indicates whether this instance and another 3x2 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Calculates the determinant for this matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + The multiplicative identify matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Represents a 4x4 matrix. + + + Creates a object from a specified object. + A 3x2 matrix. + + + Creates a 4x4 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the third element in the first row. + The value to assign to the fourth element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the third element in the second row. + The value to assign to the third element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + The value to assign to the third element in the third row. + The value to assign to the fourth element in the third row. + The value to assign to the first element in the fourth row. + The value to assign to the second element in the fourth row. + The value to assign to the third element in the fourth row. + The value to assign to the fourth element in the fourth row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a spherical billboard that rotates around a specified object position. + The position of the object that the billboard will rotate around. + The position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard. + + + Creates a cylindrical billboard that rotates around a specified axis. + The position of the object that the billboard will rotate around. + The position of the camera. + The axis to rotate the billboard around. + The forward vector of the camera. + The forward vector of the object. + The billboard matrix. + + + Creates a matrix that rotates around an arbitrary vector. + The axis to rotate around. + The angle to rotate around axis, in radians. + The rotation matrix. + + + Creates a rotation matrix from the specified Quaternion rotation value. + The source Quaternion. + The rotation matrix. + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + The angle of rotation, in radians, around the Y axis. + The angle of rotation, in radians, around the X axis. + The angle of rotation, in radians, around the Z axis. + The rotation matrix. + + + Creates a view matrix. + The position of the camera. + The target towards which the camera is pointing. + The direction that is "up" from the camera's point of view. + The view matrix. + + + Creates an orthographic perspective matrix from the given view volume dimensions. + The width of the view volume. + The height of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a customized orthographic projection matrix. + The minimum X-value of the view volume. + The maximum X-value of the view volume. + The minimum Y-value of the view volume. + The maximum Y-value of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a perspective projection matrix from the given view volume dimensions. + The width of the view volume at the near view plane. + The height of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + The field of view in the y direction, in radians. + The aspect ratio, defined as view space width divided by height. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + fieldOfView is less than or equal to zero. -or- fieldOfView is greater than or equal to . nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a customized perspective projection matrix. + The minimum x-value of the view volume at the near view plane. + The maximum x-value of the view volume at the near view plane. + The minimum y-value of the view volume at the near view plane. + The maximum y-value of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. -or- farPlaneDistance is less than or equal to zero. -or- nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a matrix that reflects the coordinate system about a specified plane. + The plane about which to create a reflection. + A new matrix expressing the reflection. + + + Creates a matrix for rotating points around the X axis. + The amount, in radians, by which to rotate around the X axis. + The rotation matrix. + + + Creates a matrix for rotating points around the X axis from a center point. + The amount, in radians, by which to rotate around the X axis. + The center point. + The rotation matrix. + + + The amount, in radians, by which to rotate around the Y axis from a center point. + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + Creates a matrix for rotating points around the Y axis. + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis. + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis from a center point. + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a uniform scaling matrix that scale equally on each axis. + The uniform scaling factor. + The scaling matrix. + + + Creates a scaling matrix with a center point. + The vector that contains the amount to scale on each axis. + The center point. + The scaling matrix. + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + The uniform scaling factor. + The center point. + The scaling matrix. + + + Creates a scaling matrix from the specified X, Y, and Z components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The center point. + The scaling matrix. + + + Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. + The direction from which the light that will cast the shadow is coming. + The plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + Creates a translation matrix from the specified 3-dimensional vector. + The amount to translate in each axis. + The translation matrix. + + + Creates a translation matrix from the specified X, Y, and Z components. + The amount to translate on the X axis. + The amount to translate on the Y axis. + The amount to translate on the Z axis. + The translation matrix. + + + Creates a world matrix with the specified parameters. + The position of the object. + The forward direction of the object. + The upward direction of the object. Its value is usually [0, 1, 0]. + The world matrix. + + + Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. + The source matrix. + When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. + When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. + When the method returns, contains the translation component of the transformation matrix if the operation succeeded. + true if matrix was decomposed successfully; otherwise, false. + + + Returns a value that indicates whether this instance and another 4x4 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Calculates the determinant of the current 4x4 matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + Gets the multiplicative identity matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The third element of the first row. + + + + The fourth element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The third element of the second row. + + + + The fourth element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + The third element of the third row. + + + + The fourth element of the third row. + + + + The first element of the fourth row. + + + + The second element of the fourth row. + + + + The third element of the fourth row. + + + + The fourth element of the fourth row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to care + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Transforms the specified matrix by applying the specified Quaternion rotation. + The matrix to transform. + The rotation t apply. + The transformed matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Transposes the rows and columns of a matrix. + The matrix to transpose. + The transposed matrix. + + + Represents a three-dimensional plane. + + + Creates a object from a specified four-dimensional vector. + A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. + + + Creates a object from a specified normal and the distance along the normal from the origin. + The plane's normal vector. + The plane's distance from the origin along its normal vector. + + + Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + The X component of the normal. + The Y component of the normal. + The Z component of the normal. + The distance of the plane along its normal from the origin. + + + Creates a object that contains three specified points. + The first point defining the plane. + The second point defining the plane. + The third point defining the plane. + The plane containing the three points. + + + The distance of the plane along its normal from the origin. + + + + Calculates the dot product of a plane and a 4-dimensional vector. + The plane. + The four-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. + The plane. + The 3-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the vector of this plane. + The plane. + The three-dimensional vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Returns a value that indicates whether this instance and another plane object are equal. + The other plane. + true if the two planes are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + The normal vector of the plane. + + + + Creates a new object whose normal vector is the source plane's normal vector normalized. + The source plane. + The normalized plane. + + + Returns a value that indicates whether two planes are equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether two planes are not equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the string representation of this plane object. + A string that represents this object. + + + Transforms a normalized plane by a 4x4 matrix. + The normalized plane to transform. + The transformation matrix to apply to plane. + The transformed plane. + + + Transforms a normalized plane by a Quaternion rotation. + The normalized plane to transform. + The Quaternion rotation to apply to the plane. + A new plane that results from applying the Quaternion rotation. + + + Represents a vector that is used to encode three-dimensional physical rotations. + + + Creates a quaternion from the specified vector and rotation parts. + The vector part of the quaternion. + The rotation part of the quaternion. + + + Constructs a quaternion from the specified components. + The value to assign to the X component of the quaternion. + The value to assign to the Y component of the quaternion. + The value to assign to the Z component of the quaternion. + The value to assign to the W component of the quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Concatenates two quaternions. + The first quaternion rotation in the series. + The second quaternion rotation in the series. + A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + Returns the conjugate of a specified quaternion. + The quaternion. + A new quaternion that is the conjugate of value. + + + Creates a quaternion from a vector and an angle to rotate about the vector. + The vector to rotate around. + The angle, in radians, to rotate around the vector. + The newly created quaternion. + + + Creates a quaternion from the specified rotation matrix. + The rotation matrix. + The newly created quaternion. + + + Creates a new quaternion from the given yaw, pitch, and roll. + The yaw angle, in radians, around the Y axis. + The pitch angle, in radians, around the X axis. + The roll angle, in radians, around the Z axis. + The resulting quaternion. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Calculates the dot product of two quaternions. + The first quaternion. + The second quaternion. + The dot product. + + + Returns a value that indicates whether this instance and another quaternion are equal. + The other quaternion. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Returns the hash code for this instance. + The hash code. + + + Gets a quaternion that represents no rotation. + A quaternion whose values are (0, 0, 0, 1). + + + Returns the inverse of a quaternion. + The quaternion. + The inverted quaternion. + + + Gets a value that indicates whether the current instance is the identity quaternion. + true if the current instance is the identity quaternion; otherwise, false. + + + Calculates the length of the quaternion. + The computed length of the quaternion. + + + Calculates the squared length of the quaternion. + The length squared of the quaternion. + + + Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. + The first quaternion. + The second quaternion. + The relative weight of quaternion2 in the interpolation. + The interpolated quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Divides each component of a specified by its length. + The quaternion to normalize. + The normalized quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Returns a value that indicates whether two quaternions are equal. + The first quaternion to compare. + The second quaternion to compare. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether two quaternions are not equal. + The first quaternion to compare. + The second quaternion to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Interpolates between two quaternions, using spherical linear interpolation. + The first quaternion. + The second quaternion. + The relative weight of the second quaternion in the interpolation. + The interpolated quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this quaternion. + The string representation of this quaternion. + + + The rotation component of the quaternion. + + + + The X value of the vector component of the quaternion. + + + + The Y value of the vector component of the quaternion. + + + + The Z value of the vector component of the quaternion. + + + + Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. + The vector type. T can be any primitive numeric type. + + + Creates a vector whose components are of a specified type. + The numeric type that defines the type of the components in the vector. + + + Creates a vector from a specified array. + A numeric array. + values is null. + + + Creates a vector from a specified array starting at a specified index position. + A numeric array. + The starting index position from which to create the vector. + values is null. + index is less than zero. -or- The length of values minus index is less than . + + + Copies the vector instance to a specified destination array. + The array to receive a copy of the vector values. + destination is null. + The number of elements in the current vector is greater than the number of elements available in the destination array. + + + Copies the vector instance to a specified destination array starting at a specified index position. + The array to receive a copy of the vector values. + The starting index in destination at which to begin the copy operation. + destination is null. + The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. + index is less than zero or greater than the last index in destination. + + + Returns the number of elements stored in the vector. + The number of elements stored in the vector. + Access to the property getter via reflection is not supported. + + + Returns a value that indicates whether this instance is equal to a specified vector. + The vector to compare with this instance. + true if the current instance and other are equal; otherwise, false. + + + Returns a value that indicates whether this instance is equal to a specified object. + The object to compare with this instance. + true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. + + + Returns the hash code for this instance. + The hash code. + + + Gets the element at a specified index. + The index of the element to return. + The element at index index. + index is less than zero. -or- index is greater than or equal to . + + + Returns a vector containing all ones. + A vector containing all ones. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise And of left and right. + + + Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise Or of the elements in left and right. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Returns a value that indicates whether each pair of elements in two specified vectors are equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise XOr of the elements in left and right. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Returns a value that indicates whether any single pair of elements in the specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if any element pairs in left and right are equal. false if no element pairs are equal. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar value. + The source vector. + A scalar value. + The scaled vector. + + + Multiplies a vector by the given scalar. + The scalar value. + The source vector. + The scaled vector. + + + Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + The source vector. + The one's complement vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates a given vector. + The vector to negate. + The negated vector. + + + Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Returns the string representation of this vector using default formatting. + The string representation of this vector. + + + Returns the string representation of this vector using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns a vector containing all zeroes. + A vector containing all zeroes. + + + Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. + + + Returns a new vector whose elements are the absolute values of the given vector's elements. + The source vector. + The vector type. T can be any primitive numeric type. + The absolute value vector. + + + Returns a new vector whose values are the sum of each pair of elements from two given vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The summed vector. + + + Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of signed bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The vector type. T can be any primitive numeric type. + The new vector with elements selected based on the mask. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The divided vector. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The dot product. + + + Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether each pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left and right are equal; otherwise, false. + + + Returns a value that indicates whether any single pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element pair in left and right is equal; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. + + + Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. + true if vector operations are subject to hardware acceleration; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than or equal to the corresponding element in right; otherwise, false. + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The maximum vector. + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The minimum vector. + + + Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. + The scalar value. + The vector. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + Returns a new vector whose values are the product of each pair of elements in two specified vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The product vector. + + + Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. + The vector. + The scalar value. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose elements are the negation of the corresponding element in the specified vector. + The source vector. + The vector type. T can be any primitive numeric type. + The negated vector. + + + Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. + The source vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector whose elements are the square roots of a specified vector's elements. + The source vector. + The vector type. T can be any primitive numeric type. + The square root vector. + + + Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The difference vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Represents a vector with two single-precision floating-point values. + + + Creates a new object whose two elements have the same value. + The value to assign to both elements. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector's elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. -or- index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of the vector. + The vector's length. + + + Returns the length of the vector squared. + The vector's length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 2 elements are equal to one. + A vector whose two elements are equal to one (that is, it returns the vector (1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector's elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 3x2 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 3x2 matrix. + The source vector. + The matrix. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0). + The vector (1,0). + + + Gets the vector (0,1). + The vector (0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + Returns a vector whose 2 elements are equal to zero. + A vector whose two elements are equal to zero (that is, it returns the vector (0,0). + + + Represents a vector with three single-precision floating-point values. + + + Creates a new object whose three elements have the same value. + The value to assign to all three elements. + + + Creates a new object from the specified object and the specified value. + The vector with two elements. + The additional value to assign to the field. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector's elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. -or- index is greater than or equal to the array length. + array is multidimensional. + + + Computes the cross product of two vectors. + The first vector. + The second vector. + The cross product. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector's length. + + + Returns the length of the vector squared. + The vector's length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 3 elements are equal to one. + A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector's elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0,0). + The vector (1,0,0). + + + Gets the vector (0,1,0). + The vector (0,1,0).. + + + Gets the vector (0,0,1). + The vector (0,0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 3 elements are equal to zero. + A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). + + + Represents a vector with four single-precision floating-point values. + + + Creates a new object whose four elements have the same value. + The value to assign to all four elements. + + + Constructs a new object from the specified object and a W component. + The vector to use for the X, Y, and Z components. + The W component. + + + Creates a new object from the specified object and a Z and a W component. + The vector to use for the X and Y components. + The Z component. + The W component. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector's elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. -or- index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false```. If <code data-dev-comment-type="paramref">obj</code> isnull, the method returnsfalse`. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector's length. + + + Returns the length of the vector squared. + The vector's length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 4 elements are equal to one. + Returns . + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns a vector whose elements are the square root of each of a specified vector's elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a four-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a four-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a three-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a two-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a two-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a three-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Gets the vector (0,0,0,1). + The vector (0,0,0,1). + + + Gets the vector (1,0,0,0). + The vector (1,0,0,0). + + + Gets the vector (0,1,0,0). + The vector (0,1,0,0).. + + + Gets a vector whose 4 elements are equal to zero. + The vector (0,0,1,0). + + + The W component of the vector. + + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 4 elements are equal to zero. + A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). + + + \ No newline at end of file diff --git a/W/Debug_Folder/System.Runtime.CompilerServices.Unsafe.dll b/W/Debug_Folder/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 000000000..de9e12447 Binary files /dev/null and b/W/Debug_Folder/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/W/Debug_Folder/System.Runtime.CompilerServices.Unsafe.xml b/W/Debug_Folder/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 000000000..6a7cfcffe --- /dev/null +++ b/W/Debug_Folder/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,200 @@ + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + true if left and right point to the same location; otherwise, false. + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type TTo. + The reference to reinterpret. + The type of reference to reinterpret.. + The desired type of the reference. + A reference to a value of type TTo. + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given location as a reference to a value of type T. + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type T. + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. target - origin. + + + Copies a value of type T to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies a value of type T to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address +without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address +without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value +without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value +without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Reads a value of type T from the given location. + The location to read from. + The type to read. + An object of type T read from the given location. + + + Reads a value of type T from the given location +without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type T read from the given location. + + + Reads a value of type T from the given location +without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type T read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type T. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subraction of offset from pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + + The type of reference. + A new reference that reflects the subraction of byte offset from pointer. + + + Writes a value of type T to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type T to the given location +without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type T to the given location +without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/W/Debug_Folder/System.Threading.Channels.dll b/W/Debug_Folder/System.Threading.Channels.dll new file mode 100644 index 000000000..cdbf7901f Binary files /dev/null and b/W/Debug_Folder/System.Threading.Channels.dll differ diff --git a/W/Debug_Folder/System.Threading.Channels.xml b/W/Debug_Folder/System.Threading.Channels.xml new file mode 100644 index 000000000..1e9482b3b --- /dev/null +++ b/W/Debug_Folder/System.Threading.Channels.xml @@ -0,0 +1,217 @@ + + + + System.Threading.Channels + + + + Specifies the behavior to use when writing to a bounded channel that is already full. + + + Removes and ignores the newest item in the channel in order to make room for the item being written. + + + Removes and ignores the oldest item in the channel in order to make room for the item being written. + + + Drops the item being written. + + + Waits for space to be available in order to complete the write operation. + + + Provides options that control the behavior of bounded instances. + + + Initializes the options. + The maximum number of items the bounded channel may store. + + + Gets or sets the maximum number of items the bounded channel may store. + + + Gets or sets the behavior incurred by write operations when the channel is full. + + + Provides static methods for creating channels. + + + Creates a channel with the specified maximum capacity. + The maximum number of items the channel may store. + Specifies the type of data in the channel. + The created channel. + + + Creates a channel with the specified maximum capacity. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Creates an unbounded channel usable by any number of readers and writers concurrently. + The type of data in the channel. + The created channel. + + + Creates an unbounded channel subject to the provided options. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Provides a base class for channels that support reading and writing elements of type . + Specifies the type of data readable and writable in the channel. + + + Initializes an instance of the class. + + + Provides a base class for channels that support reading elements of type and writing elements of type . + Specifies the type of data that may be written to the channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Implicit cast from a to its readable half. + The being cast. + The readable half. + + + Implicit cast from a to its writable half. + The being cast. + The writable half. + + + Gets the readable half of this channel. + + + Gets the writable half of this channel. + + + Exception thrown when a channel is used after it's been closed. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The exception that is the cause of this exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class. + The message that describes the error. + + + Initializes a new instance of the class. + The message that describes the error. + The exception that is the cause of this exception. + + + Provides options that control the behavior of channel instances. + + + Initializes an instance of the class. + + + + if operations performed on a channel may synchronously invoke continuations subscribed to +notifications of pending async operations; if all continuations should be invoked asynchronously. + + + + readers from the channel guarantee that there will only ever be at most one read operation at a time; + if no such constraint is guaranteed. + + + + if writers to the channel guarantee that there will only ever be at most one write operation +at a time; if no such constraint is guaranteed. + + + Provides a base class for reading from a channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Gets a that completes when no more data will ever +be available to be read from this channel. + + + Creates an that enables reading all of the data from the channel. + The cancellation token to use to cancel the enumeration. + The created async enumerable. + + + Asynchronously reads an item from the channel. + A used to cancel the read operation. + A that represents the asynchronous read operation. + + + Attempts to read an item from the channel. + The read item, or a default value if no item could be read. + + if an item was read; otherwise, . + + + Returns a that will complete when data is available to read. + A used to cancel the wait operation. + A that will complete with a result when data is available to read + or with a result when no further data will ever be available to be read due to the channel completing successfully. + If the channel completes with an exception, the task will also complete with an exception. +. + + + Provides a base class for writing to a channel. + Specifies the type of data that may be written to the channel. + + + Initializes an instance of the class. + + + Mark the channel as being complete, meaning no more items will be written to it. + Optional Exception indicating a failure that's causing the channel to complete. + The channel has already been marked as complete. + + + Attempts to mark the channel as being completed, meaning no more data will be written to it. + An indicating the failure causing no more data to be written, or null for success. + + if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion, +for example due to having already been marked as such, or due to not supporting completion. +. + + + Attempts to write the specified item to the channel. + The item to write. + + if the item was written; otherwise, . + + + Returns a that will complete when space is available to write an item. + A used to cancel the wait operation. + A that will complete with a result when space is available to write an item +or with a result when no further writing will be permitted. + + + Asynchronously writes an item to the channel. + The value to write to the channel. + A used to cancel the write operation. + A that represents the asynchronous write operation. + + + Provides options that control the behavior of unbounded instances. + + + Initializes a new instance of the class. + + + \ No newline at end of file diff --git a/W/Debug_Folder/System.Threading.Tasks.Extensions.dll b/W/Debug_Folder/System.Threading.Tasks.Extensions.dll new file mode 100644 index 000000000..eeec92852 Binary files /dev/null and b/W/Debug_Folder/System.Threading.Tasks.Extensions.dll differ diff --git a/W/Debug_Folder/System.Threading.Tasks.Extensions.xml b/W/Debug_Folder/System.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..5e02a99d7 --- /dev/null +++ b/W/Debug_Folder/System.Threading.Tasks.Extensions.xml @@ -0,0 +1,166 @@ + + + System.Threading.Tasks.Extensions + + + + + + + + + + + + + + + + + + + Provides a value type that wraps a and a TResult, only one of which is used. + The result. + + + Initializes a new instance of the class using the supplied task that represents the operation. + The task. + The task argument is null. + + + Initializes a new instance of the class using the supplied result of a successful operation. + The result. + + + Retrieves a object that represents this . + The object that is wrapped in this if one exists, or a new object that represents the result. + + + Configures an awaiter for this value. + true to attempt to marshal the continuation back to the captured context; otherwise, false. + The configured awaiter. + + + Creates a method builder for use with an async method. + The created builder. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Creates an awaiter for this value. + The awaiter. + + + Returns the hash code for this instance. + The hash code for the current object. + + + Gets a value that indicates whether this object represents a canceled operation. + true if this object represents a canceled operation; otherwise, false. + + + Gets a value that indicates whether this object represents a completed operation. + true if this object represents a completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a successfully completed operation. + true if this object represents a successfully completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a failed operation. + true if this object represents a failed operation; otherwise, false. + + + Compares two values for equality. + The first value to compare. + The second value to compare. + true if the two values are equal; otherwise, false. + + + Determines whether two values are unequal. + The first value to compare. + The seconed value to compare. + true if the two values are not equal; otherwise, false. + + + Gets the result. + The result. + + + Returns a string that represents the current object. + A string that represents the current object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/W/Debug_Folder/a.pas b/W/Debug_Folder/a.pas new file mode 100644 index 000000000..c25ad261c --- /dev/null +++ b/W/Debug_Folder/a.pas @@ -0,0 +1,39 @@ +{$reference Microsoft.ML.Core.dll} +{$reference Microsoft.ML.Data.dll} +{$reference Microsoft.ML.KMeansClustering.dll} + +uses Microsoft.ML; +uses Microsoft.ML.Data; +uses Microsoft.ML.Trainers; +uses Microsoft.ML.Transforms; + +begin + var Context := new MLContext(); + {var loader := Context.Data.CreateTextLoader( + Arr( + new TextLoader.Column('SentimentText', DataKind.String, 1), + new TextLoader.Column('Label', DataKind.Boolean, 0) + ));} + var fullData := Context.Data.LoadFromTextFile('iris-full.txt', + Arr( + new TextLoader.Column('Label', DataKind.Single, 0), + new TextLoader.Column('SepalLength', DataKind.Single, 1), + new TextLoader.Column('SepalWidth', DataKind.Single, 2), + new TextLoader.Column('PetalLength', DataKind.Single, 3), + new TextLoader.Column('PetalWidth', DataKind.Single, 4) + ), + #9, True + ); + var trainTestData := Context.Data.TrainTestSplit(fullData, 0.2); + var trainingDataView := trainTestData.TrainSet; + var testingDataView := trainTestData.TestSet; + var dataProcessPipeline := Context.Transforms.Concatenate('Features', + 'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'); + + //var trainer: KMeansTrainer := Context.Clustering.Trainers.KMeans('Features', nil, 3); + var trainer: IEstimator>; + //trainer := Context.Clustering.Trainers.KMeans('Features', nil, 3); + //dataProcessPipeline.Append(new KMeansTrainer); + //var trainingPipeline := dataProcessPipeline.Append(trainer); + //var trainedModel := trainingPipeline.Fit(trainingDataView); +end. \ No newline at end of file diff --git a/W/Debug_Folder/a1.pas b/W/Debug_Folder/a1.pas new file mode 100644 index 000000000..c2fc71797 --- /dev/null +++ b/W/Debug_Folder/a1.pas @@ -0,0 +1,11 @@ +{$reference Microsoft.ML.Core.dll} +{$reference Microsoft.ML.Data.dll} +{$reference Microsoft.ML.KMeansClustering.dll} + +uses Microsoft.ML; +uses Microsoft.ML.Data; +uses Microsoft.ML.Trainers; + +begin + var trainer: IEstimator>; +end. \ No newline at end of file diff --git a/W/Debug_Folder/iris-full.txt b/W/Debug_Folder/iris-full.txt new file mode 100644 index 000000000..68d136a11 --- /dev/null +++ b/W/Debug_Folder/iris-full.txt @@ -0,0 +1,152 @@ +#Label Sepal length Sepal width Petal length Petal width +0 5.1 3.5 1.4 0.2 +0 4.9 3.0 1.4 0.2 +0 4.7 3.2 1.3 0.2 +0 4.6 3.1 1.5 0.2 +0 5.0 3.6 1.4 0.2 +0 5.4 3.9 1.7 0.4 +0 4.6 3.4 1.4 0.3 +0 5.0 3.4 1.5 0.2 +0 4.4 2.9 1.4 0.2 +0 4.9 3.1 1.5 0.1 +0 5.4 3.7 1.5 0.2 +0 4.8 3.4 1.6 0.2 +0 4.8 3.0 1.4 0.1 +0 4.3 3.0 1.1 0.1 +0 5.8 4.0 1.2 0.2 +0 5.7 4.4 1.5 0.4 +0 5.4 3.9 1.3 0.4 +0 5.1 3.5 1.4 0.3 +0 5.7 3.8 1.7 0.3 +0 5.1 3.8 1.5 0.3 +0 5.4 3.4 1.7 0.2 +0 5.1 3.7 1.5 0.4 +0 4.6 3.6 1.0 0.2 +0 5.1 3.3 1.7 0.5 +0 4.8 3.4 1.9 0.2 +0 5.0 3.0 1.6 0.2 +0 5.0 3.4 1.6 0.4 +0 5.2 3.5 1.5 0.2 +0 5.2 3.4 1.4 0.2 +0 4.7 3.2 1.6 0.2 +0 4.8 3.1 1.6 0.2 +0 5.4 3.4 1.5 0.4 +0 5.2 4.1 1.5 0.1 +0 5.5 4.2 1.4 0.2 +0 4.9 3.1 1.5 0.1 +0 5.0 3.2 1.2 0.2 +0 5.5 3.5 1.3 0.2 +0 4.9 3.1 1.5 0.1 +0 4.4 3.0 1.3 0.2 +0 5.1 3.4 1.5 0.2 +0 5.0 3.5 1.3 0.3 +0 4.5 2.3 1.3 0.3 +0 4.4 3.2 1.3 0.2 +0 5.0 3.5 1.6 0.6 +0 5.1 3.8 1.9 0.4 +0 4.8 3.0 1.4 0.3 +0 5.1 3.8 1.6 0.2 +0 4.6 3.2 1.4 0.2 +0 5.3 3.7 1.5 0.2 +0 5.0 3.3 1.4 0.2 +1 7.0 3.2 4.7 1.4 +1 6.4 3.2 4.5 1.5 +1 6.9 3.1 4.9 1.5 +1 5.5 2.3 4.0 1.3 +1 6.5 2.8 4.6 1.5 +1 5.7 2.8 4.5 1.3 +1 6.3 3.3 4.7 1.6 +1 4.9 2.4 3.3 1.0 +1 6.6 2.9 4.6 1.3 +1 5.2 2.7 3.9 1.4 +1 5.0 2.0 3.5 1.0 +1 5.9 3.0 4.2 1.5 +1 6.0 2.2 4.0 1.0 +1 6.1 2.9 4.7 1.4 +1 5.6 2.9 3.6 1.3 +1 6.7 3.1 4.4 1.4 +1 5.6 3.0 4.5 1.5 +1 5.8 2.7 4.1 1.0 +1 6.2 2.2 4.5 1.5 +1 5.6 2.5 3.9 1.1 +1 5.9 3.2 4.8 1.8 +1 6.1 2.8 4.0 1.3 +1 6.3 2.5 4.9 1.5 +1 6.1 2.8 4.7 1.2 +1 6.4 2.9 4.3 1.3 +1 6.6 3.0 4.4 1.4 +1 6.8 2.8 4.8 1.4 +1 6.7 3.0 5.0 1.7 +1 6.0 2.9 4.5 1.5 +1 5.7 2.6 3.5 1.0 +1 5.5 2.4 3.8 1.1 +1 5.5 2.4 3.7 1.0 +1 5.8 2.7 3.9 1.2 +1 6.0 2.7 5.1 1.6 +1 5.4 3.0 4.5 1.5 +1 6.0 3.4 4.5 1.6 +1 6.7 3.1 4.7 1.5 +1 6.3 2.3 4.4 1.3 +1 5.6 3.0 4.1 1.3 +1 5.5 2.5 4.0 1.3 +1 5.5 2.6 4.4 1.2 +1 6.1 3.0 4.6 1.4 +1 5.8 2.6 4.0 1.2 +1 5.0 2.3 3.3 1.0 +1 5.6 2.7 4.2 1.3 +1 5.7 3.0 4.2 1.2 +1 5.7 2.9 4.2 1.3 +1 6.2 2.9 4.3 1.3 +1 5.1 2.5 3.0 1.1 +1 5.7 2.8 4.1 1.3 +2 6.3 3.3 6.0 2.5 +2 5.8 2.7 5.1 1.9 +2 7.1 3.0 5.9 2.1 +2 6.3 2.9 5.6 1.8 +2 6.5 3.0 5.8 2.2 +2 7.6 3.0 6.6 2.1 +2 4.9 2.5 4.5 1.7 +2 7.3 2.9 6.3 1.8 +2 6.7 2.5 5.8 1.8 +2 7.2 3.6 6.1 2.5 +2 6.5 3.2 5.1 2.0 +2 6.4 2.7 5.3 1.9 +2 6.8 3.0 5.5 2.1 +2 5.7 2.5 5.0 2.0 +2 5.8 2.8 5.1 2.4 +2 6.4 3.2 5.3 2.3 +2 6.5 3.0 5.5 1.8 +2 7.7 3.8 6.7 2.2 +2 7.7 2.6 6.9 2.3 +2 6.0 2.2 5.0 1.5 +2 6.9 3.2 5.7 2.3 +2 5.6 2.8 4.9 2.0 +2 7.7 2.8 6.7 2.0 +2 6.3 2.7 4.9 1.8 +2 6.7 3.3 5.7 2.1 +2 7.2 3.2 6.0 1.8 +2 6.2 2.8 4.8 1.8 +2 6.1 3.0 4.9 1.8 +2 6.4 2.8 5.6 2.1 +2 7.2 3.0 5.8 1.6 +2 7.4 2.8 6.1 1.9 +2 7.9 3.8 6.4 2.0 +2 6.4 2.8 5.6 2.2 +2 6.3 2.8 5.1 1.5 +2 6.1 2.6 5.6 1.4 +2 7.7 3.0 6.1 2.3 +2 6.3 3.4 5.6 2.4 +2 6.4 3.1 5.5 1.8 +2 6.0 3.0 4.8 1.8 +2 6.9 3.1 5.4 2.1 +2 6.7 3.1 5.6 2.4 +2 6.9 3.1 5.1 2.3 +2 5.8 2.7 5.1 1.9 +2 6.8 3.2 5.9 2.3 +2 6.7 3.3 5.7 2.5 +2 6.7 3.0 5.2 2.3 +2 6.3 2.5 5.0 1.9 +2 6.5 3.0 5.2 2.0 +2 6.2 3.4 5.4 2.3 +2 5.9 3.0 5.1 1.8 +