Sodium - Functional Reactive Programming (FRP) library for .NET.
Foundational classes for financial, engineering, and scientific applications, including complex number classes, general vector and matrix classes, structured sparse matrix classes and factorizations, general sparse matrix classes and factorizations, general matrix decompositions, least squares solutions, random number generators, Fast Fourier Transforms (FFTs), numerical integration and differentiation methods, function minimization, curve fitting, root-finding, linear and nonlinear programming. This package also provides functions for statistical computation and biostatistics, including descriptive statistics, probability distributions, combinatorial functions, multiple linear regression, hypothesis testing, analysis of variance, multivariate statistics, partial least squares, and nonnegative matrix factorization. Built on .NET Standard 2.0. Requires a minimum of .NET Standard 2.0, .NET 5, .NET Core 2.0 or .NET Framework 4.6.1. Requires x64 hardware. On Windows, requires Visual Studio 2017 C++ x64 runtime. On Linux, requires libgcc.
Foundational classes for financial, engineering, and scientific applications, including complex number classes, general vector and matrix classes, structured sparse matrix classes and factorizations, general sparse matrix classes and factorizations, general matrix decompositions, least squares solutions, random number generators, Fast Fourier Transforms (FFTs), numerical integration and differentiation methods, function minimization, curve fitting, root-finding, linear and nonlinear programming. This package also provides functions for statistical computation and biostatistics, including descriptive statistics, probability distributions, combinatorial functions, multiple linear regression, hypothesis testing, analysis of variance, multivariate statistics, partial least squares, and nonnegative matrix factorization. Built on .NET Standard 2.0. Requires a minimum of .NET Standard 2.0, .NET 5, .NET Core 2.0 or .NET Framework 4.6.1. Requires x64 hardware.
Everyone deserves to enjoy the benefits of functional programming. The Tango provides a series of implementations to facilitate the use of functional programming concepts in C#. In a certain way any C# developer work with some functional concepts like anonymous methods with lambda expressions and high order functions with Linq library, and so on. C# is an amazing programming language and we as a dev, can improve it a lot more. In this library I implements some of the core functional concepts in order to enhances the experience of developers. Tango is a set of powerful functional tools for your .NET C# application. With Tango you can write a clean functional code in C#. It can works with pipelines (method and operator), promises, optional and either type values. Besides that, Tango provides an extension for IEnumerables, Options and Either with the Module namespace. Use popular methods like Map, Map2, Map3, Filter, Reduce, Fold, Scan and so on, always respecting lazy loadness. Functional programming brings a lot of benefits to your application, and the do you know the best of all? It makes development more fun! Stop to struggle with your code and take it to dance a Tango!
Fast and space efficient immutable collections, hash maps, and utilities for performant programming in C#. Split from the DryIoc: https://github.com/dadhi/DryIoc
Library providing the gettext functions, return message strings in the user's native language. Implementations of printf are also included, as message strings of programs using gettext are likely to rely on features missing from the standard implementation.
Composer is an extensible Compositional Architecture framework, providing a set of functionality such as Inversion of Control container (IoC), Dependency Injection (DI), Plug-in framework, Aspect Oriented Programming (AOP), Configurability and Composability for components.
FLib is small utilities library that contains a few useful classes for general purpose usage. It can be used in everyday programming to make method argument validation clearer(FLib.Validation), help with bindings(FLib.Data.Binding and FLib.Data.PropertyPath), support cancellable editing(FLib.Data.PropertyBag). It also contains a couple of extension methods for frequently used actions(raising events, formatting strings, etc.). As of version 0.4, FLib is partly ported to WinRT. WinRT version does not support some functionality (bindings, type converters) because they are available in WinRT or aren't supported.
FSec is a tool for automatically running API security tests for .NET programs. The tool provides some basic security testing functionality to discover vulnerabilities.
FSec is a tool for automatically running FsCheck security tests for .NET programs. The tool provides some basic security testing functionality to discover vulnerabilities.
DiffSharp is an automatic differentiation (AD) library. AD allows exact and efficient calculation of derivatives, by systematically invoking the chain rule of calculus at the elementary operator level during program execution. AD is different from numerical differentiation, which is prone to truncation and round-off errors, and symbolic differentiation, which is affected by expression swell and cannot fully handle algorithmic control flow. Using the DiffSharp library, derivative calculations (gradients, Hessians, Jacobians, directional derivatives, and matrix-free Hessian- and Jacobian-vector products) can be incorporated with minimal change into existing algorithms. Diffsharp supports nested forward and reverse AD up to any level, meaning that you can compute exact higher-order derivatives or differentiate functions that are internally making use of differentiation. Please see the API Overview page for a list of available operations. The library is under active development by Atılım Güneş Baydin and Barak A. Pearlmutter mainly for research applications in machine learning, as part of their work at the Brain and Computation Lab, Hamilton Institute, National University of Ireland Maynooth. DiffSharp is implemented in the F# language and can be used from C# and the other languages running on .NET Core, Mono, or the .NET Framework; targeting the 64 bit platform. It is tested on Linux and Windows. We are working on interfaces/ports to other languages.
EFrt - Embeddable FORTH programing language interpreter - core functions.
An extensible compositional architecture framework, providing a set of functionality such as Inversion of Control container (IoC), Dependency Injection (DI), Plug-in framework, Aspect Oriented Programming (AOP), Configurability and Composability for components.
Memoize functions with ease
Cross-platform .NET library for computations whose arguments and results are objects that implement INotifyPropertyChanged and INotifyCollectionChanged (ObservableCollection) interfaces. The computations include ones similar to LINQ (collections), the computation of arbitrary expression (scalar value), and additional features. The computations are implemented as extension methods, like LINQ ones. You can combine calls of ObservableComputations extension methods including chaining and nesting, as you do for LINQ methods. Computations in background threads, including parallel ones, as well as time-related processing of CollectionChanged and PropertyChanged events, are supported. ObservableComputations is easy to use and powerful implementation of reactive programming paradigm. With ObservableComputations, your code will fit more to the functional style than with standard LINQ.
Total functions made convenient for F# and C#
Foundational classes for financial, engineering, and scientific applications, including complex number classes, general vector and matrix classes, structured sparse matrix classes and factorizations, general sparse matrix classes and factorizations, general matrix decompositions, least squares solutions, random number generators, Fast Fourier Transforms (FFTs), numerical integration and differentiation methods, function minimization, curve fitting, root-finding, linear and nonlinear programming. This package also provides functions for statistical computation and biostatistics, including descriptive statistics, probability distributions, combinatorial functions, multiple linear regression, hypothesis testing, analysis of variance, multivariate statistics, partial least squares, and nonnegative matrix factorization. Built on .NET Standard 2.0. Requires a minimum of .NET Standard 2.0, .NET 5, .NET Core 2.0 or .NET Framework 4.6.1. Requires Visual Studio 2017 C++ x86 runtime.
CodeMirror is a JavaScript component that provides a code editor in the browser. When a mode is available for the language you are coding in, it will color your code, and optionally help with indentation. A rich programming API and a CSS theming system are available for customizing CodeMirror to fit your application, and extending it with new functionality. This is the complete package available from http://codemirror.net.
A library (.dll) of various linear, nonlinear, and stochastic numerical optimization techniques. While some of these are older than 40 years, many have yet to take advantage of an object-oriented programming model. This toolbox was originally created to aid in the automated design of various engineering artifacts. The following “class diagram” shows the main optimization methods that have currently been implemented – as well as some insight into organization of classes and objects. The best way to understand how to use OOOT, is through examples. There are two basic types of methods implemented so far: methods for continuous variables and methods for discrete variables. Approaches for mixed methods such as Branch-and-Bound are planned but not currently included. ClassDiagram1Many of the optimization methods for real valued decision variables will require that a line-search method be specified (Arithmetic Mean, Golden Section, DSC-Powell) and a search direction method (Cyclic Coordinate Search, Steepest Descent, Powell’s Method, Fletcher-Reeves, or Broyden-Fletcher-Goldfarb-Shanno). With this modular design it is possible to reconfigure these to create 80 unique algorithms. In addition to these there are also ten different convergence criteria that can be added individually or in any combination to these 80 algorithms. Read more about convergence methods here. But, one of the biggest advantages of the toolbox is the way that objective functions, equalities and inequalities can be easily added to the optimization process. Most (if not all open source approaches) optimization codes requires the problem specific details to be compiled along with the algorithm. Here, the problem formulation can be in another library or exe and can be customized at run-time instead of compile time. It is even possible to have the optimization algorithm change in response to the nature of the design variables and the number of constraints. Read more about problem formulation
C# code to calculate the coefficients of the Butterworth filter and to filter the data This code calculates the coefficients of the Band-pass, Band-stop, Low-pass and High-pass Butterworth filters. It also filters the data, but no zero-phase delay is applied. The namespace is IIR_Butterworth_CS_Library. Each filter function will return a 2 rows x N coefficients 2D vector, where Row 1 = Numerator and Row 2 = Denumerator. The method "Check_stability_iir" can be used to check the stability of the filter. Please, keep in mind that if the filter is unstable, numerical instability leading to numerical overflow might happen when the order selected is extremely high. If that situation occurs, the program might assign a default value of 10^10 at the denominator. Band-pass: the function is "double[][] Lp2bp(double W_f1, double W_f2, int order_filt)". The first two arguments are the two normalized cut-off frequencies (f1/NF, f2/NF), where NF is the Nyquist frequency. This means that the cutoff frequencies must be within the interval of (0,1). The last argument is the order. Please, keep in mind that if you enter order_filt = 2, the order of the order will be 2 * order_filt = 4; Band-stop: the function is "double[][] Lp2bs(double W_f1, double W_f2, int order_filt)". The first two arguments are the two normalized cut-off frequencies (f1/NF, f2/NF), where NF is the Nyquist frequency. This means that the cutoff frequencies must be within the interval of (0,1). The last argument is the order. Please, keep in mind that if you enter order_filt = 2, the order of the order will be 2 * order_filt = 4; Low-pass: the function is "double[][] Lp2hp(double W_f1, int order_filt)". The first argument is the normalized cut-off frequency (f/NF), where NF is the Nyquist frequency. This means that the cutoff frequency must be within the interval of (0,1). The last argument is the order; High-pass: the function is "double[][] Lp2lp(double W_f1, int order_filt)". The first argument is the normalized cut-off frequency (f/NF), where NF is the Nyquist frequency. This means that the cutoff frequency must be within the interval of (0,1). The last argument is the order; Check the stability of the filter: the method is "bool Check_stability_iir(double[][] coeff_filt)". The argument is the 2D array containing the filter coefficients. It returns "true" if the filter is stable, "false" if it is unstable. Filter the data: the method is "double[] Filter_Data(double[][] coeff_filt, double[] pre_filt_signal)". The two arguments are the filter coefficients and the signal to be filtered. It returns the filtered signal. This code has been written following the Matlab code, so the arguments of each function reflect the arguments that you should pass to the equivalent functions in Matlab. I tried to be consistent with the names of the functions, in case someone wants to compare this code with Matlab code. The only exception is the function Check_stability_iir, which is not present in Matlab. If you have any question and/or want to report bugs, please e-mail me (Ale) at: pressalex@hotmail.com
Adds functional programming aspects using functions like Some, None, Ok, Error
WebRx is a Javascript MVVM-Framework built on ReactiveX for Javascript (RxJs) that combines functional-reactive programming with observable-powered declarative Data-Binding, Templating and client-side Routing.
The Open XML PowerTools provides guidance and example code for programming with Open XML Documents (DOCX, XLSX, and PPTX). It is based on, and extends the functionality of the Open XML SDK. It supports scenarios such as: •Splitting DOCX/PPTX files into multiple files. •Combining multiple DOCX/PPTX files into a single file. •Populating content in template DOCX files with data from XML. •High-fidelity conversion of DOCX to HTML. •Searching and replacing content in DOCX/PPTX using regular expressions. •Managing tracked-revisions, including detecting tracked revisions, and accepting tracked revisions. •Updating Charts in DOCX/PPTX files, including updating cached data, as well as the embedded XLSX. •Retrieving metrics from DOCX files, including the hierarchy of styles used, the languages used, and the fonts used. •Writing XLSX files using far simpler code than directly writing the markup, including a streaming approach that enables writing XLSX files with millions of rows.
A companion library to Endofunk.FX providing functional wrappers around: - System.Net - Newtonsoft.Json
An assortment of useful extensions to .Net in the following areas, alphabetically: ADO.NET, command line, cryptography, functional programming, logging, generics, performance monitoring, reflection, REST API, serialization, string manipulations.
FsPickler is a serialization library that facilitates the distribution of .NET objects. The implementation focuses on performance and completeness in supported types, including F# types. It supports multiple, pluggable serialization formats including Binary, Xml, JSON and BSON. The library is based on the functional programming concept of pickler combinators which has been adapted to accommodate the object oriented nature of the .NET framework.
A strong named library that provides a plethora of interesting and useful extensions to take advantage of and complement the functionality available in the .NET Framework 4 for parallel programming.
This class library provides a plethora of interesting and useful extensions to take advantage of and complement the functionality available in the .NET Framework 4 for parallel programming. Some (not all) features of this package are included in newer versions of .NET. See https://stackoverflow.com/q/37494157/328397
This class library adds functionality to your program to deal with complex comment based xml help.
PrimeFuncPack: A Functional Programming Pack for .NET
PrimeFuncPack: A Functional Programming Pack for .NET
.NET Core compatible version of the fsharp compiler fsc.exe. Supported Platforms: - .NET Core (.netstandard1.6)
Functional Error Handling library that is intented to be idiomatic for C#. Based on the Railway Oriented Programming idea
Simple generic result object in order to replace exceptions changing program flow
OpenCV (Open Source Computer Vision) is a library of programming functions for realtime computer vision. OpenCV is released under a BSD license and hence it's free for both academic and commercial use. It has C++, C, Python and Java (Android) interfaces and supports Windows, Linux, Android, iOS and Mac OS. It has more than 2500 optimized algorithms. Adopted all around the world, OpenCV has more than 7 million downloads growing by nearly 200K/month. Usage ranges from interactive art, to mines inspection, stitching maps on the web on through advanced robotics.
SoftwareCraft.Maybe represents the OOP implementation of a functional concept. Instead of returning null, return a Maybe, and the code will be much cleaner and the intent much clearer.
Carbon is a PowerShell module for automating the configuration Windows 7, 8, 2008, and 2012 and automation the installation and configuration of Windows applications, websites, and services. It can configure and manage: * Local users and groups * IIS websites, virtual directories, and applications * File system, registry, and certificate permissions * Certificates * Privileges * Services * Encryption * Junctions * Hosts file * INI files * Performance counters * Shares * .NET connection strings and app settings * And much more! All functions are idempotent: when run multiple times with the same arguments, your system will be in the same state without failing or producing errors.
This library supports functional programming using F# on ASP.NET.
FSharp.Core redistributables from F# Tools version 14.0.100 For F# 10.0. Contains code from the F# Software Foundation.
A library that adds functional style lists and functions to C#. Create a functional list using var list = fist(1, 2, 3, 4), and then use the library of standard map(), reduce(), etc functions to work with it. It also deconstructs to a ValueTuple such that C# 8 switch statements ca pattern match using (var head, Fist tail). Create a functional function using var f = funf((x, y) => x + y) and then call it using call(f, 1, 2), which would be 3 in this case. You can also compose multiple functions in a call like call(f, 1, f, 2, 3), which would first call the rightmost f with 2 and 3 to get 5 and then would send 1 and the resulting 5 to the first f to get 6. Full XML Documentation provides interactive help if your IDE of choice supports it. Also see full documentation on the project page.
FsCheck is a tool for testing .NET programs automatically. You provide a specification of the program, in the form of properties which functions, methods or objects should satisfy, and FsCheck then tests that the properties hold in a large number of randomly generated cases. Such properties are actually a testable specification of your program. Properties are written in F#, C# or VB. FsCheck helps you to define properties, observe the distribution of test data, and define test data generators. Crucially, when a property fails, FsCheck automatically displays a minimal counter example.
Contains a matrix extension library, along with a suite of numerical matrix decomposition methods, numerical optimization algorithms for constrained and unconstrained problems, special functions and other tools for scientific applications. This package is part of the Accord.NET Framework.
FsPickler is a serialization library that facilitates the distribution of .NET objects. The implementation focuses on performance and completeness in supported types, including F# types. It supports multiple, pluggable serialization formats including Binary, Xml, JSON and BSON. The library is based on the functional programming concept of pickler combinators which has been adapted to accommodate the object oriented nature of the .NET framework.
A collection of common monads and other features (or approximations of features) often found in functional programming languages.
🏗️ Classes, functions and extensions to help with Async programming.
Set of extension methods that allows functional programming in C#