# dlib C++ Library 1.0

OS : Windows / Linux / Mac OS / BSD / Solaris

Script Licensing : Other Free / Open Source License - Boost Software License

Created : Mar 26, 2011

Downloads : 3

Thank you for voting...

## dlib allows programmers to deal in an easy way with ...

dlib allows programmers to deal in an easy way with networking, threads, graphical interfaces, XML and text parsing, numerical optimization, data structures, linear algebra, machine_learning or Bayesian nets.

• A type-safe object to convert between big and little endian byte orderings

• A command line parser with the ability to parse and validate command lines with various types of arguments and options

• An XML parser

• An object that can perform base64 conversions

• Many container classes

• Serialization support

• Many memory manager objects that implement different memory pooling strategies

• Unlike a lot of open source projects, this one provides complete and precise documentation for every class and function. There are also debugging modes that check the documented preconditions for functions. When this is enabled it will catch the vast majority of bugs caused by calling functions incorrectly or using objects in an incorrect manner.

• Lots of example programs are provided

• I consider the documentation to be the most important part of the library. So if you find anything that isn't documented, isn't clear, or has out of date documentation, tell me and I will fix it.

• All non ISO C++ code is isolated inside the OS abstraction layers which are kept as small as possible. The rest of the library is either layered on top of the OS abstraction layers or is pure ISO C++.

• Big/little endian agnostic

• No other packages are required to use the library. Only APIs that are provided by an out of the box OS are needed.

• The library is tested regularly on win32, Linux, and Mac OS X systems. However, it should work on any POSIX system and has been tested on Solaris, HPUX, and the BSDs.

• The library provides a portable and simple threading API

• A pipe for inter-thread communication

• A timer object capable of generating events that are regularly spaced in time

• Thread specific data

• Threaded objects

• Threaded functions

• A thread_pool with support for futures

• The library provides a portable and simple TCP sockets API

• An object to help you make TCP based servers

• A streambuf object that enables TCP sockets to interoperate with the C++ iostreams library

• A simple HTTP server object you can use to embed a web server into your applications

• The library provides a portable and simple core GUI API

• Implemented on top of the core GUI API are numerous widgets

• Unlike many other GUI toolkits, the entire dlib GUI toolkit is threadsafe

• A fast matrix object implemented using the expression templates technique and capable of using BLAS and LAPACK libraries when available.

• Numerous linear algebra and mathematical operations are defined for the matrix object such as the singular value decomposition, transpose, trig functions, etc.

• General purpose unconstrained non-linear optimization algorithm using the conjugate gradient, BFGS, and L-BFGS techniques

• Levenberg-Marquardt for solving non-linear least squares problems

• Box-constrained derivative-free optimization via the BOBYQA algorithm

• An implementation of the Optimized Cutting Plane Algorithm

• Several quadratic program solvers

• A big integer object

• A random number object

• Conventional SMO based Support Vector Machines for classification and regression

• Reduced-rank methods for large-scale classification and regression

• Relevance vector machines for classification and regression

• General purpose multiclass classification tools

• A Multiclass SVM

• A tool for solving the optimization problem associated with structural support vector machines.

• An online kernel RLS regression algorithm

• An online SVM classification algorithm

• An online kernelized centroid estimator/novelty detector

• and offline support vector one-class classification A kernelized k-means clustering algorithm

• Radial Basis Function Networks

• Multi layer perceptrons

• join tree algorithm for exact inference

• gibbs sampler markov chain monte carlo algorithm

• Windows BMP read and write support

• Automatic color space conversion between various pixel types

• Common image operations such as edge finding and morphological operations

• Implementations of the SURF and HOG feature extraction algorithms.

• A CRC 32 object

• MD5 functions

• Various abstracted objects representing parts of data compression algorithms. Many forms of the PPM algorithm are included.

• A thread safe logger object styled after the popular Java logger log4j

• A modular unit testing framework

• Various assert macros useful for testing preconditions

• Added a multiclass support vector machine.

• Added a tool for solving the optimization problem associated with structural support vector machines.

• Added new functions for dealing with sparse vectors: add_to(), subtract_from(), max_index_plus_one(), fix_nonzero_indexing(), a more flexible dot(), and I renamed assign_dense_to_sparse() to assign() and made it more flexible.

• Renamed max_index_value_plus_one() (a function for working with graphs) to max_index_plus_one() so that it uses the same name as the essentially identical function for working with sparse vectors.

• I simplified the cross_validate_multiclass_trainer(), cross_validate_trainer(), test_binary_decision_function(), and test_multiclass_decision_function() routines. They now always return double matrices regardless of any other consideration. This only breaks previous code if you had been assigning the result into a float or long double matrix.

• Renamed assign_dense_to_sparse() to assign()

• Fixed a bug in load_libsvm_formatted_data(). I had forgotten to clear the contents of the labels output vector before adding the loaded label data.

• Fixed a bug in the kernel_matrix() function. It didn't compile when used with sparse samples which were of type std::vector< std::pair< > > . Moreover, some of the trainers have a dependency on kernel_matrix() so this fix makes those trainers also work with this kind of sparse sample.

• Added a value_type typedef to matrix_exp so it's easier to write templates which operate on STL containers and matrix objects.

**Most important functions of dlib C++ Library by Davis E. King:**

**General Utilities:**• A type-safe object to convert between big and little endian byte orderings

• A command line parser with the ability to parse and validate command lines with various types of arguments and options

• An XML parser

• An object that can perform base64 conversions

• Many container classes

• Serialization support

• Many memory manager objects that implement different memory pooling strategies

**Documentation:**• Unlike a lot of open source projects, this one provides complete and precise documentation for every class and function. There are also debugging modes that check the documented preconditions for functions. When this is enabled it will catch the vast majority of bugs caused by calling functions incorrectly or using objects in an incorrect manner.

• Lots of example programs are provided

• I consider the documentation to be the most important part of the library. So if you find anything that isn't documented, isn't clear, or has out of date documentation, tell me and I will fix it.

**Portable Code:**• All non ISO C++ code is isolated inside the OS abstraction layers which are kept as small as possible. The rest of the library is either layered on top of the OS abstraction layers or is pure ISO C++.

• Big/little endian agnostic

• No other packages are required to use the library. Only APIs that are provided by an out of the box OS are needed.

• The library is tested regularly on win32, Linux, and Mac OS X systems. However, it should work on any POSIX system and has been tested on Solaris, HPUX, and the BSDs.

**Threading:**• The library provides a portable and simple threading API

• A pipe for inter-thread communication

• A timer object capable of generating events that are regularly spaced in time

• Thread specific data

• Threaded objects

• Threaded functions

• A thread_pool with support for futures

**Networking:**• The library provides a portable and simple TCP sockets API

• An object to help you make TCP based servers

• A streambuf object that enables TCP sockets to interoperate with the C++ iostreams library

• A simple HTTP server object you can use to embed a web server into your applications

**Graphical User Interfaces:**• The library provides a portable and simple core GUI API

• Implemented on top of the core GUI API are numerous widgets

• Unlike many other GUI toolkits, the entire dlib GUI toolkit is threadsafe

**Numerical Algorithms:**• A fast matrix object implemented using the expression templates technique and capable of using BLAS and LAPACK libraries when available.

• Numerous linear algebra and mathematical operations are defined for the matrix object such as the singular value decomposition, transpose, trig functions, etc.

• General purpose unconstrained non-linear optimization algorithm using the conjugate gradient, BFGS, and L-BFGS techniques

• Levenberg-Marquardt for solving non-linear least squares problems

• Box-constrained derivative-free optimization via the BOBYQA algorithm

• An implementation of the Optimized Cutting Plane Algorithm

• Several quadratic program solvers

• A big integer object

• A random number object

**Machine Learning Algorithms:**• Conventional SMO based Support Vector Machines for classification and regression

• Reduced-rank methods for large-scale classification and regression

• Relevance vector machines for classification and regression

• General purpose multiclass classification tools

• A Multiclass SVM

• A tool for solving the optimization problem associated with structural support vector machines.

• An online kernel RLS regression algorithm

• An online SVM classification algorithm

• An online kernelized centroid estimator/novelty detector

• and offline support vector one-class classification A kernelized k-means clustering algorithm

• Radial Basis Function Networks

• Multi layer perceptrons

**Bayesian Network Inference Algorithms:**• join tree algorithm for exact inference

• gibbs sampler markov chain monte carlo algorithm

**Image Processing:**• Windows BMP read and write support

• Automatic color space conversion between various pixel types

• Common image operations such as edge finding and morphological operations

• Implementations of the SURF and HOG feature extraction algorithms.

**Data Compression and Integrity Algorithms:**• A CRC 32 object

• MD5 functions

• Various abstracted objects representing parts of data compression algorithms. Many forms of the PPM algorithm are included.

**Testing:**• A thread safe logger object styled after the popular Java logger log4j

• A modular unit testing framework

• Various assert macros useful for testing preconditions

*News in the current dlib C++ Library 1.0 version:*

**New Stuff:**• Added a multiclass support vector machine.

• Added a tool for solving the optimization problem associated with structural support vector machines.

• Added new functions for dealing with sparse vectors: add_to(), subtract_from(), max_index_plus_one(), fix_nonzero_indexing(), a more flexible dot(), and I renamed assign_dense_to_sparse() to assign() and made it more flexible.

**Non-Backwards Compatible Changes:**• Renamed max_index_value_plus_one() (a function for working with graphs) to max_index_plus_one() so that it uses the same name as the essentially identical function for working with sparse vectors.

• I simplified the cross_validate_multiclass_trainer(), cross_validate_trainer(), test_binary_decision_function(), and test_multiclass_decision_function() routines. They now always return double matrices regardless of any other consideration. This only breaks previous code if you had been assigning the result into a float or long double matrix.

• Renamed assign_dense_to_sparse() to assign()

**Bug fixes:**• Fixed a bug in load_libsvm_formatted_data(). I had forgotten to clear the contents of the labels output vector before adding the loaded label data.

• Fixed a bug in the kernel_matrix() function. It didn't compile when used with sparse samples which were of type std::vector< std::pair< > > . Moreover, some of the trainers have a dependency on kernel_matrix() so this fix makes those trainers also work with this kind of sparse sample.

**Other:**• Added a value_type typedef to matrix_exp so it's easier to write templates which operate on STL containers and matrix objects.

**dlib C++ Library 1.0 scripting tags:**development, programming, object, machine learning, library, development tool, dlib library, support, algorithm.

**What is new in dlib C++ Library 1.0 software script?**- Unable to find dlib C++ Library 1.0 news.

**What is improvements are expecting?**Newly-made dlib C++ Library 1.1 will be downloaded from here. You may download directly. Please write the reviews of the dlib C++ Library. License limitations are unspecified.