dlib

Modern C++ library with a focus on portability and program correctness
Download

dlib Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Price:
  • FREE
  • Publisher Name:
  • Davis King
  • Publisher web site:
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 1.6 MB

dlib Tags


dlib Description

Modern C++ library with a focus on portability and program correctness dlib strives to be easy to use right and hard to use wrong. Thus, it comes with extensive documentation and thorough debugging modes. dlib provides a platform abstraction layer for common tasks such as interfacing with network services, handling threads, or creating graphical user interfaces. Additionally, the library implements many useful algorithms such as data compression routines, binary search trees, machine learning algorithms, linked lists, linear algebra and matrix utilities, XML and text parsing, and many other general utilities.NOTE: dlib is licensed and distributed under the terms of the Boost Software License (BSL1.0). Here are some key features of "dlib": · Everything is Design by Contract all the time. This means there is complete and precise documentation for every class and function. There are also debugging modes that check the 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. · Abstraction layers on top of operating system APIs. Specifically: directory navigation, TCP sockets, threading and graphical user interfaces. · Very portable · All non ISO C++ code is located in the OS abstraction layers which are as small as possible (about 9% of the library). The rest of the objects in the library are either layered on top of the OS abstraction layer or are pure ISO C++. · Big/little endian agnostic. · No assumptions are made about structure byte packing. · No other packages are required to use the library. Only APIs that are provided by an out of the box OS are used. · Many container classes. What makes these containers different from what can be found in the STL is how they move objects into and out of themselves. Rather than copying things around everything is moved around by swapping. This allows you to do things like have containers of containers of containers. They also have simpler interfaces. · There are many versions of each container with different performance characteristics so you have great flexibility in choosing exactly what you want. · Many of the containers perform all their allocations through the memory_manager object and unlike the STL there is no requirement that different instances of the memory manager/allocator be able to free objects allocated from each other. This allows for much more interesting memory manager implementations. · All containers are serializable. · A command line parser with the ability to parse and validate command lines with various types of arguments and options. · Various abstracted objects representing parts of data compression algorithms. Many forms of the PPM algorithm are included. · A fast matrix object implemented using the expression templates technique. · Machine learning algorithms such as multi layer perceptrons and nu support vector machines. · A big integer object · A thread safe logger object styled after the popular Java logger log4j. · All new threads are pulled from a dynamically sized thread pool. So calls to create_new_thread() are fast. · A modular testing framework. · A simple HTTP server object you can use to embed a web server into your applications. What's New in This Release: New Stuff: · Added the pointer_to_column_vector function. · Added the BOBYQA algorithm for derivative-free optimization. · Added some functions to make it easy to do a line search on a function of a single variable when derivatives are not available. Non-Backwards Compatible Changes: Bug fixes: · Fixed a bug in the cpp pretty printer. It wasn't parsing exponentiated numbers like 1e100 correctly. Other: · Added a model selection example program using grid search and the new BOBYQA algorithm.


dlib Related Software