Algorithms_in_C++
1.0.0
Set of algorithms implemented in C++.
|
Go to the documentation of this file.
10 #ifndef VECTOR_OPS_FOR_NN
11 #define VECTOR_OPS_FOR_NN
36 for (
const auto &a : A) {
37 for (
const auto &x : a) {
56 std::cout <<
"(" << A.first <<
", " << A.second <<
")";
70 for (
const auto &a : A) {
87 B.resize(A.size() + 1);
88 for (
size_t i = 0; i < A.size(); i++) {
91 B[B.size() - 1] = ele;
101 template <
typename T>
104 B.resize(A.size() - 1);
105 for (
size_t i = 1; i < A.size();
118 template <
typename T>
121 B.resize(A.size() - 1);
122 for (
size_t i = 0; i < A.size() - 1;
135 template <
typename T>
139 if (A.size() != B.size()) {
140 std::cerr <<
"ERROR (" << __func__ <<
") : ";
142 <<
"Can not equally shuffle two vectors with different sizes: ";
146 for (
size_t i = 0; i < A.size(); i++) {
149 size_t random_index =
std::rand() % A.size();
165 template <
typename T>
168 const T &low,
const T &high) {
174 for (
size_t i = 0; i < shape.first; i++) {
177 row.resize(shape.second);
178 for (
auto &r : row) {
179 r = distribution(generator);
192 template <
typename T>
196 for (
size_t i = 0; i < shape.first; i++) {
199 row.resize(shape.second);
212 template <
typename T>
216 for (
size_t i = 0; i < shape.first; i++) {
219 row.resize(shape.second);
231 template <
typename T>
234 for (
const auto &a : A) {
246 template <
typename T>
248 const size_t sub_size = (*A.begin()).size();
249 for (
const auto &a : A) {
251 if (a.size() != sub_size) {
252 std::cerr <<
"ERROR (" << __func__ <<
") : ";
268 template <
typename T>
277 if (shape.first != 1) {
278 std::cerr <<
"ERROR (" << __func__ <<
") : ";
280 <<
"Supplied vector is not supported for minmax scaling, shape: ";
284 for (
size_t i = 0; i < shape.second; i++) {
285 T min = B[0][0][i], max = B[0][0][i];
286 for (
size_t j = 0; j < B.
size(); j++) {
291 for (
size_t j = 0; j < B.
size(); j++) {
294 ((B[j][0][i] - min) / (max - min)) * (high - low) + low;
306 template <
typename T>
311 if (shape.first != 1) {
312 std::cerr <<
"ERROR (" << __func__ <<
") : ";
328 template <
typename T>
346 template <
typename T>
364 template <
typename T>
381 template <
typename T>
387 for (
size_t j = 0; j < shape.second; j++) {
389 row.resize(shape.first);
390 for (
size_t i = 0; i < shape.first; i++) {
405 template <
typename T>
412 if (shape_a.first != shape_b.first || shape_a.second != shape_b.second) {
413 std::cerr <<
"ERROR (" << __func__ <<
") : ";
414 std::cerr <<
"Supplied vectors have different shapes ";
419 for (
size_t i = 0; i < A.size(); i++) {
432 template <
typename T>
439 if (shape_a.first != shape_b.first || shape_a.second != shape_b.second) {
440 std::cerr <<
"ERROR (" << __func__ <<
") : ";
441 std::cerr <<
"Supplied vectors have different shapes ";
446 for (
size_t i = 0; i < A.size(); i++) {
459 template <
typename T>
465 if (shape_a.second != shape_b.first) {
466 std::cerr <<
"ERROR (" << __func__ <<
") : ";
467 std::cerr <<
"Vectors are not eligible for multiplication ";
473 for (
size_t i = 0; i < shape_a.first; i++) {
475 row.resize(shape_b.second);
476 for (
size_t j = 0; j < shape_b.second; j++) {
477 for (
size_t k = 0; k < shape_a.second; k++) {
478 row[j] += A[i][k] * B[k][j];
493 template <
typename T>
500 if (shape_a.first != shape_b.first || shape_a.second != shape_b.second) {
501 std::cerr <<
"ERROR (" << __func__ <<
") : ";
502 std::cerr <<
"Vectors have different shapes ";
507 for (
size_t i = 0; i < A.size(); i++) {
Graph(int size)
Constructor that initializes the graph on creation.
Definition: is_graph_bipartite.cpp:65
int number_of_digits(int num)
Definition: armstrong_number.cpp:21
Definition: double_hash_hash_table.cpp:36
void pop()
Definition: stack.h:99
bool is_armstrong(int number)
Definition: armstrong_number.cpp:36
void addEdge(std::vector< std::vector< std::pair< int, int >>> *adj, int u, int v, int w)
Function that add edge between two nodes or vertices of graph.
Definition: dijkstra.cpp:48
void uniform_random_initialization(std::vector< std::valarray< T >> &A, const std::pair< size_t, size_t > &shape, const T &low, const T &high)
Definition: vector_ops.hpp:166
T setprecision(T... args)
std::vector< bool > breadth_first_search(const std::vector< std::vector< int >> &graph, int start)
Function performs the breadth first search algorithm over the graph.
Definition: breadth_first_search.cpp:96
int key
key value
Definition: linear_probing_hash_table.cpp:37
std::vector< Point > getConvexHull() const
Definition: jarvis_algorithm.cpp:78
static void test()
Definition: shortest_common_supersequence.cpp:124
std::remove_reference< AdjList >::type const & getAdjList() const
Definition: cycle_check_directed_graph.cpp:103
static bool isCyclicBFS(Graph const &graph)
Definition: cycle_check_directed_graph.cpp:249
std::vector< std::valarray< T > > apply_function(const std::vector< std::valarray< T >> &A, T(*func)(const T &))
Definition: vector_ops.hpp:329
static void test()
Definition: jarvis_algorithm.cpp:151
void removalInfo(int key)
Definition: quadratic_probing_hash_table.cpp:222
unsigned int getVertices() const
Definition: cycle_check_directed_graph.cpp:110
void addInfo(int key)
Definition: double_hash_hash_table.cpp:212
size_t otherHashFxn(int key)
Used for second hash function.
Definition: double_hash_hash_table.cpp:58
Shortest Common Super Sequence algorithm.
DenseLayer & operator=(const DenseLayer &layer)=default
Functions for checking whether a graph is bipartite or not.
Graph(size_t N, const std::vector< std::pair< int, int > > &undirected_edges)
Populate the adjacency list for each vertex in the graph. Assumes that evey edge is a pair of valid v...
Definition: lowest_common_ancestor.cpp:62
#define MAX
Definition: fibonacci_fast.cpp:27
std::valarray< T > pop_back(const std::valarray< T > &A)
Definition: vector_ops.hpp:119
void addVertices(unsigned int num=1)
Definition: cycle_check_directed_graph.cpp:118
void equal_shuffle(std::vector< std::vector< std::valarray< T >>> &A, std::vector< std::vector< std::valarray< T >>> &B)
Definition: vector_ops.hpp:136
LowestCommonAncestor(const RootedTree &tree_)
Stores the tree and precomputs "up lifts".
Definition: lowest_common_ancestor.cpp:151
T inner_product(T... args)
Entry(int key=notPresent)
constructor
Definition: linear_probing_hash_table.cpp:36
std::vector< std::valarray< T > > operator/(const std::vector< std::valarray< T >> &A, const T &val)
Definition: vector_ops.hpp:365
std::vector< T > operator+(std::vector< T > const &A, std::vector< T > const &B)
Definition: ordinary_least_squares_regressor.cpp:204
bool putProber(const Entry &entry, int key)
Definition: linear_probing_hash_table.cpp:98
std::valarray< T > pop_front(const std::valarray< T > &A)
Definition: vector_ops.hpp:102
An implementation of hash table using double hashing algorithm.
DenseLayer(const int &neurons, const std::string &activation, const std::pair< size_t, size_t > &kernal_shape, const bool &random_kernal)
Definition: neural_network.cpp:141
Definition: linear_probing_hash_table.cpp:35
std::vector< int > level
Stores the distance from the root.
Definition: lowest_common_ancestor.cpp:106
void removalInfo(int key)
Definition: double_hash_hash_table.cpp:227
bool find(int x, int h) const
Find if a value and corresponding hash exist.
Definition: chaining.cpp:101
adaline(int num_features, const double eta=0.01f, const double accuracy=1e-5)
Definition: adaline_learning.cpp:55
trie()=default
Class default constructor.
Definition: trie_modern.cpp:16
void rehash()
Definition: linear_probing_hash_table.cpp:138
NeuralNetwork(const std::vector< std::pair< int, std::string >> &config)
Definition: neural_network.cpp:313
An implementation of hash table using quadratic probing algorithm.
void test1()
Definition: kohonen_som_topology.cpp:369
void insert(const std::string &str)
Definition: trie_tree.cpp:77
double fit(const std::vector< double > &x, const int &y)
Definition: adaline_learning.cpp:119
int main()
Definition: double_hash_hash_table.cpp:250
Convexhull(const std::vector< Point > &pointList)
Definition: jarvis_algorithm.cpp:66
ll ans(ll n)
Definition: matrix_exponentiation.cpp:91
Entry(int key=notPresent)
constructor
Definition: double_hash_hash_table.cpp:37
NeuralNetwork load_model(const std::string &file_name)
Definition: neural_network.cpp:732
std::string scs(const std::string &str1, const std::string &str2)
Definition: shortest_common_supersequence.cpp:42
int main(int argc, char **argv)
Definition: kohonen_som_topology.cpp:582
static bool hasChildren(std::shared_ptr< TrieNode > node)
Definition: trie_modern.cpp:41
bool putProber(const Entry &entry, int key)
Definition: double_hash_hash_table.cpp:120
int main(int argc, char **argv)
Definition: spirograph.cpp:268
Graph(unsigned int vertices, AdjList adjList)
Definition: cycle_check_directed_graph.cpp:68
int getConnectedComponents(const std::vector< std::vector< int >> *adj)
Function that perfoms depth first search algorithm on graph and calculated the number of connected co...
Definition: connected_components.cpp:77
void populate_up()
Definition: lowest_common_ancestor.cpp:212
void test_3d_classes(std::vector< std::valarray< double >> *data)
Definition: kohonen_som_trace.cpp:359
NeuralNetwork & operator=(const NeuralNetwork &model)=default
Definition: trie_modern.cpp:26
double drelu(const double &x)
Definition: neural_network.cpp:81
Definition: avltree.cpp:13
Definition: lowest_common_ancestor.cpp:84
bool putProber(const Entry &entry, int key)
Definition: quadratic_probing_hash_table.cpp:106
int main()
Definition: is_graph_bipartite.cpp:168
void display()
Definition: quadratic_probing_hash_table.cpp:142
Definition: quadratic_probing_hash_table.cpp:37
std::vector< std::vector< std::valarray< double > > > batch_predict(const std::vector< std::vector< std::valarray< double >>> &X)
Definition: neural_network.cpp:464
int save_nd_data(const char *fname, const std::vector< std::valarray< double >> &X)
Definition: kohonen_som_trace.cpp:58
Chain class with a given modulus.
Definition: chaining.cpp:16
double get_clock_diff(clock_t start_t, clock_t end_t)
Definition: kohonen_som_trace.cpp:452
void test2(const std::string &text)
Self test 2 - using 8x8 randomly generated key.
Definition: hill_cipher.cpp:505
void add_directed_edge(std::vector< std::vector< int >> *graph, int u, int v)
Adds a directed edge from vertex u to vertex v.
Definition: breadth_first_search.cpp:66
Graph(unsigned int vertices, std::vector< Edge > const &edges)
Definition: cycle_check_directed_graph.cpp:88
static void test1()
Definition: hamiltons_cycle.cpp:81
bool searchingProber(const Entry &entry, int key)
Definition: linear_probing_hash_table.cpp:110
int predict(const std::vector< double > &x, double *out=nullptr)
Definition: adaline_learning.cpp:95
void populate_parents()
Calculate the parents for all the vertices in the tree. Implements the breadth first search algorithm...
Definition: lowest_common_ancestor.cpp:117
Machine learning algorithms.
std::vector< std::valarray< T > > operator-(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:433
std::vector< std::valarray< T > > transpose(const std::vector< std::valarray< T >> &A)
Definition: vector_ops.hpp:382
Entry find(int key)
Definition: quadratic_probing_hash_table.cpp:131
bool is_square(std::vector< std::vector< T >> const &A)
Definition: ordinary_least_squares_regressor.cpp:59
int activation(double x)
Definition: adaline_learning.cpp:186
size_t hashFxn(int key)
Hash a key. Uses the STL library's std::hash() function.
Definition: linear_probing_hash_table.cpp:46
double update_weights(const std::valarray< double > &X, std::vector< std::vector< std::valarray< double >>> *W, std::vector< std::valarray< double >> *D, double alpha, int R)
Definition: kohonen_som_topology.cpp:200
void addInfo(int key)
Definition: linear_probing_hash_table.cpp:186
Definition: bellman_ford.cpp:13
Definition: bridge_finding_with_tarjan_algorithm.cpp:11
void remove(int key)
Definition: linear_probing_hash_table.cpp:173
void get_min_2d(const std::vector< std::valarray< double >> &X, double *val, int *x_idx, int *y_idx)
Definition: kohonen_som_topology.cpp:105
std::array< T, N > shuffle(std::array< T, N > arr)
Definition: bogo_sort.cpp:36
std::vector< std::shared_ptr< Node > > head
array of nodes
Definition: chaining.cpp:24
NeuralNetwork(NeuralNetwork &&)=default
Trie implementation for small-case English alphabets a-z
Definition: trie_tree.cpp:25
std::ostream & operator<<(std::ostream &out, std::vector< std::valarray< T >> const &A)
Definition: vector_ops.hpp:32
DenseLayer & operator=(DenseLayer &&)=default
bool check_size_match(const std::vector< double > &x)
Definition: adaline_learning.cpp:196
int stack_idx
pointer to track stack index
Definition: paranthesis_matching.cpp:23
void evaluate_from_csv(const std::string &file_name, const bool &last_label, const bool &normalize, const int &slip_lines=1)
Definition: neural_network.cpp:638
int main()
Definition: breadth_first_search.cpp:162
void test1()
Definition: kohonen_som_trace.cpp:233
void add(int x, int h)
create and add a new node with a give value and at a given height
Definition: chaining.cpp:45
void remove(int key)
Definition: quadratic_probing_hash_table.cpp:194
int linearProbe(int key, bool searching)
Definition: linear_probing_hash_table.cpp:55
std::vector< std::vector< T > > operator*(std::vector< std::vector< T >> const &A, std::vector< std::vector< T >> const &B)
Definition: ordinary_least_squares_regressor.cpp:78
constexpr int MAX_ITER
Definition: adaline_learning.cpp:40
static void test()
Definition: is_graph_bipartite.cpp:136
size_t argmax(const std::vector< std::valarray< T >> &A)
Definition: vector_ops.hpp:307
Definition: linkedlist_implentation_usingarray.cpp:14
int y
Point respect to x coordinate.
Definition: line_segment_intersection.cpp:14
static void test()
Definition: neural_network.cpp:805
int main(int argc, char **argv)
Definition: kohonen_som_trace.cpp:457
bool isEndofWord
identifier if a node is terminal node
Definition: trie_tree.cpp:30
void insert(const std::string &word)
Definition: trie_modern.cpp:109
std::ostream & operator<<(std::ostream &out, std::vector< std::vector< T >> const &v)
Definition: ordinary_least_squares_regressor.cpp:22
static bool isCyclicDFS(Graph const &graph)
Definition: cycle_check_directed_graph.cpp:212
void tests()
Definition: dijkstra.cpp:113
void test3()
Definition: kohonen_som_topology.cpp:537
Definition: cycle_check_directed_graph.cpp:158
void evaluate(const std::vector< std::vector< std::valarray< double >>> &X, const std::vector< std::vector< std::valarray< double >>> &Y)
Definition: neural_network.cpp:606
void unit_matrix_initialization(std::vector< std::valarray< T >> &A, const std::pair< size_t, size_t > &shape)
Definition: vector_ops.hpp:193
std::vector< std::vector< int > > up
for every vertex stores a list of its ancestors by powers of two For each vertex, the first element o...
Definition: lowest_common_ancestor.cpp:206
std::vector< int > parent
Stores parent of every vertex and for root its own index. The root is technically not its own parent,...
Definition: lowest_common_ancestor.cpp:104
int dijkstra(std::vector< std::vector< std::pair< int, int >>> *adj, int s, int t)
Function runs the dijkstra algorithm for some source vertex and target vertex in the graph and return...
Definition: dijkstra.cpp:66
static bool isCyclicDFSHelper(AdjList const &adjList, std::vector< nodeStates > *state, unsigned int node)
Definition: cycle_check_directed_graph.cpp:170
DenseLayer(const int &neurons, const std::string &activation, const std::vector< std::valarray< double >> &kernal)
Definition: neural_network.cpp:183
RootedTree(const std::vector< std::pair< int, int > > &undirected_edges, int root_)
Constructs the tree by calculating parent for every vertex. Assumes a valid description of a tree is ...
Definition: lowest_common_ancestor.cpp:93
Definition: huffman.cpp:7
int main()
Definition: line_segment_intersection.cpp:92
int key
key value
Definition: quadratic_probing_hash_table.cpp:39
int main()
Definition: connected_components.cpp:127
void test1(double eta=0.01)
Definition: adaline_learning.cpp:224
Neural Network or Multilayer Perceptron.
void depth_first_search(const std::vector< std::vector< size_t >> &adj, size_t start)
initiates depth first search algorithm.
Definition: depth_first_search.cpp:99
int _mod
modulus of the class
Definition: chaining.cpp:27
int h(int key)
Definition: hash_search.cpp:45
int direction(Point first_point, Point second_point, Point third_point)
Definition: line_segment_intersection.cpp:63
int main()
Definition: depth_first_search.cpp:109
const double eta
learning rate of the algorithm
Definition: adaline_learning.cpp:207
void fit(const std::vector< std::vector< std::valarray< double >>> &X_, const std::vector< std::vector< std::valarray< double >>> &Y_, const int &epochs=100, const double &learning_rate=0.01, const size_t &batch_size=32, const bool &shuffle=true)
Definition: neural_network.cpp:485
Various activation functions used in Neural network.
double sigmoid(const double &x)
Definition: neural_network.cpp:60
size_t hashFxn(int key)
Hash a key. Uses the STL library's std::hash() function.
Definition: double_hash_hash_table.cpp:47
double relu(const double &x)
Definition: neural_network.cpp:74
Edge(unsigned int source, unsigned int destination)
Definition: cycle_check_directed_graph.cpp:40
Trie()
constructor to initialise the root of the trie.
Definition: trie_modern.cpp:103
Definition: prims_minimum_spanning_tree.cpp:9
Dynamic Programming algorithms.
void addEdge(unsigned int source, unsigned int destination)
Definition: cycle_check_directed_graph.cpp:136
std::valarray< T > insert_element(const std::valarray< T > &A, const T &ele)
Definition: vector_ops.hpp:85
void test()
Definition: armstrong_number.cpp:59
void add(int key)
Definition: quadratic_probing_hash_table.cpp:182
std::vector< std::vector< std::valarray< double > > > __detailed_single_prediction(const std::vector< std::valarray< double >> &X)
Definition: neural_network.cpp:289
double square(const double &x)
Definition: neural_network.cpp:106
int main()
Definition: chaining.cpp:133
static void test2()
Definition: hamiltons_cycle.cpp:103
std::vector< double > weights
weights of the neural network
Definition: adaline_learning.cpp:209
Definition: line_segment_intersection.cpp:22
int main()
Definition: ordinary_least_squares_regressor.cpp:423
int height(node *root)
Definition: avltree.cpp:31
std::vector< float > predict_OLS_regressor(std::vector< std::vector< T >> const &X, std::vector< float > const &beta)
Definition: ordinary_least_squares_regressor.cpp:352
void fit(std::array< std::vector< double >, N > const &X, std::array< int, N > const &Y)
Definition: adaline_learning.cpp:145
void addEdge(std::vector< std::vector< int >> *adj, int u, int v)
Function that add edge between two nodes or vertices of graph.
Definition: connected_components.cpp:46
void test_3d_classes1(std::vector< std::valarray< double >> *data)
Definition: kohonen_som_topology.cpp:411
uint64_t fib(uint64_t n)
Definition: fibonacci_fast.cpp:30
void rehash()
Definition: quadratic_probing_hash_table.cpp:160
Data Structures algorithms.
void test2()
Definition: kohonen_som_topology.cpp:451
bool on_segment(Point first_point, Point second_point, Point third_point)
Definition: line_segment_intersection.cpp:75
bool is_bipartite()
function to add edges to our graph
Definition: is_graph_bipartite.cpp:106
void rehash()
Definition: double_hash_hash_table.cpp:161
#define endl
Definition: matrix_exponentiation.cpp:36
void push(Type item)
Definition: stack.h:83
void test2()
Definition: kohonen_som_trace.cpp:315
virtual int hash(int x) const
Compute the hash of a value for current chain.
Definition: chaining.cpp:91
void addInfo(int key)
Definition: quadratic_probing_hash_table.cpp:207
void display()
Definition: double_hash_hash_table.cpp:143
void remove(int key)
Definition: double_hash_hash_table.cpp:199
void add_undirected_edge(std::vector< std::vector< int >> *graph, int u, int v)
Adds an undirected edge from vertex u to vertex v. Essentially adds too directed edges to the adjacen...
Definition: breadth_first_search.cpp:81
static constexpr uint8_t NUM_CHARS
Number of alphabets.
Definition: trie_tree.cpp:27
std::vector< std::vector< int > > adj
adj stores the graph as an adjacency list
Definition: is_graph_bipartite.cpp:56
int main()
Definition: jarvis_algorithm.cpp:176
uint8_t char_to_int(const char &ch) const
Convert a character to integer for indexing.
Definition: trie_tree.cpp:38
void fit_from_csv(const std::string &file_name, const bool &last_label, const int &epochs, const double &learning_rate, const bool &normalize, const int &slip_lines=1, const size_t &batch_size=32, const bool &shuffle=true)
Definition: neural_network.cpp:587
void print(uint32_t N, const std::vector< bool > &is_prime)
Definition: sieve_of_eratosthenes.cpp:44
int main(int argc, char **argv)
Definition: hamiltons_cycle.cpp:142
std::vector< std::vector< int > > neighbors
for each vertex it stores a list indicies of its neighbors
Definition: lowest_common_ancestor.cpp:77
Graph(unsigned int vertices, AdjList &&adjList)
Definition: cycle_check_directed_graph.cpp:76
Definition: neural_network.cpp:247
Functions for Jarvis’s algorithm.
std::vector< int > side
stores the side of the vertex
Definition: is_graph_bipartite.cpp:58
int save_2d_data(const char *fname, const std::vector< std::valarray< double >> &X)
Definition: kohonen_som_topology.cpp:65
An implementation of hash table using linear probing algorithm.
void test_lamniscate(std::vector< std::valarray< double >> *data)
Definition: kohonen_som_trace.cpp:277
int main()
Definition: trie_modern.cpp:160
NeuralNetwork(const NeuralNetwork &model)=default
Definition: bellman_ford.cpp:7
std::vector< std::vector< std::valarray< T > > > minmax_scaler(const std::vector< std::vector< std::valarray< T >>> &A, const T &low, const T &high)
Definition: vector_ops.hpp:269
Entry(int key=notPresent)
constructor
Definition: quadratic_probing_hash_table.cpp:38
Type top()
Definition: stack.h:93
Definition: jarvis_algorithm.cpp:55
void tests()
Definition: breadth_first_search.cpp:122
bool hamilton_cycle(const std::vector< std::vector< bool >> &routes)
Definition: hamiltons_cycle.cpp:30
bool deleteString(const std::string &str, int index)
Definition: trie_tree.cpp:134
void tests()
Definition: connected_components.cpp:93
NeuralNetwork(const std::vector< std::pair< int, std::string >> &config, const std::vector< std::vector< std::valarray< double >>> &kernals)
Definition: neural_network.cpp:256
int data[MAX]
test data
Definition: hash_search.cpp:24
DenseLayer(DenseLayer &&)=default
void add(int key)
Definition: linear_probing_hash_table.cpp:161
void summary()
Definition: neural_network.cpp:773
T emplace_back(T... args)
std::array< std::shared_ptr< trie >, NUM_CHARS<< 1 > arr
Recursive tree nodes as an array of shared-pointers.
Definition: trie_tree.cpp:29
void test()
Test function to save resulting points to a CSV file.
Definition: spirograph.cpp:93
int main()
Main function.
Definition: trie_tree.cpp:205
std::vector< float > fit_OLS_regressor(std::vector< std::vector< T >> const &X, std::vector< T > const &Y)
Definition: ordinary_least_squares_regressor.cpp:321
std::vector< T > operator-(std::vector< T > const &A, std::vector< T > const &B)
Definition: ordinary_least_squares_regressor.cpp:183
int main()
Definition: armstrong_number.cpp:77
std::vector< std::vector< float > > get_inverse(std::vector< std::vector< T >> const &A)
Definition: ordinary_least_squares_regressor.cpp:226
bool search(const std::shared_ptr< trie > &root, const std::string &str, int index)
Definition: trie_tree.cpp:56
std::pair< std::vector< std::vector< std::valarray< double > > >, std::vector< std::vector< std::valarray< double > > > > get_XY_from_csv(const std::string &file_name, const bool &last_label, const bool &normalize, const int &slip_lines=1)
Definition: neural_network.cpp:382
bool searchingProber(const Entry &entry, int key)
Definition: double_hash_hash_table.cpp:133
std::shared_ptr< struct Node > next
pointer to the next node
Definition: chaining.cpp:23
Definition: lowest_common_ancestor.cpp:145
friend std::ostream & operator<<(std::ostream &out, const adaline &ada)
Definition: adaline_learning.cpp:76
std::vector< std::valarray< double > > single_predict(const std::vector< std::valarray< double >> &X)
Definition: neural_network.cpp:451
int save_u_matrix(const char *fname, const std::vector< std::vector< std::valarray< double >>> &W)
Definition: kohonen_som_topology.cpp:142
std::pair< size_t, size_t > get_shape(const std::vector< std::valarray< T >> &A)
Definition: vector_ops.hpp:247
NeuralNetwork & operator=(NeuralNetwork &&)=default
void save_model(const std::string &_file_name)
Definition: neural_network.cpp:652
constexpr double MIN_DISTANCE
Definition: kohonen_som_topology.cpp:129
void removalInfo(int key)
Definition: linear_probing_hash_table.cpp:201
void show(const struct tower *const F, const struct tower *const T, const struct tower *const U)
Definition: tower_of_hanoi.cpp:19
int number_of_vertices() const
Definition: lowest_common_ancestor.cpp:74
Definition: huffman.cpp:28
double dsigmoid(const double &x)
Definition: neural_network.cpp:67
static void tests()
Definition: lowest_common_ancestor.cpp:234
double get_clock_diff(clock_t start_t, clock_t end_t)
Definition: kohonen_som_topology.cpp:577
void add(int key)
Definition: double_hash_hash_table.cpp:185
int doubleHash(int key, bool searching)
Performs double hashing to resolve collisions.
Definition: double_hash_hash_table.cpp:71
int main()
Definition: lowest_common_ancestor.cpp:255
hash_chain(int mod)
Construct a new chain object.
Definition: chaining.cpp:35
Various functions for vectors associated with NeuralNetwork (aka Multilayer Perceptron).
bool search(const std::string &word)
Definition: trie_modern.cpp:132
Definition: lowest_common_ancestor.cpp:53
double identity_function(const double &x)
Definition: neural_network.cpp:112
void explore(const std::vector< std::vector< int >> *adj, int u, std::vector< bool > *visited)
Utility function for depth first seach algorithm this function explores the vertex which is passed in...
Definition: connected_components.cpp:59
Definition: knapsack.cpp:4
int main()
Definition: linear_probing_hash_table.cpp:224
bool search(const std::string &str, int index)
Definition: trie_tree.cpp:107
void display()
Definition: stack.h:29
Definition: jarvis_algorithm.cpp:47
void test3()
Definition: kohonen_som_trace.cpp:414
void ols_test()
Definition: ordinary_least_squares_regressor.cpp:369
bool isEmptyStack()
Definition: stack.h:80
This namespace contains layers used in MLP.
DenseLayer(const DenseLayer &layer)=default
std::vector< std::valarray< T > > operator*(const std::vector< std::valarray< T >> &A, const T &val)
Definition: vector_ops.hpp:347
int main()
Definition: neural_network.cpp:830
static void test()
Testing function.
Definition: trie_tree.cpp:178
size_t hashFxn(int key)
Definition: quadratic_probing_hash_table.cpp:46
int quadraticProbe(int key, bool searching)
Definition: quadratic_probing_hash_table.cpp:56
char stack[MAX]
Definition: paranthesis_matching.cpp:20
int key
key value
Definition: double_hash_hash_table.cpp:38
static int orientation(const Point &p, const Point &q, const Point &r)
Definition: jarvis_algorithm.cpp:133
const double accuracy
model fit convergence accuracy
Definition: adaline_learning.cpp:208
int main()
Definition: dijkstra.cpp:152
std::vector< std::valarray< T > > operator+(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:406
Definition: neural_network.cpp:125
void test_2d_classes(std::vector< std::valarray< double >> *data)
Definition: kohonen_som_topology.cpp:330
int root
Index of the root vertex.
Definition: lowest_common_ancestor.cpp:108
Definition: line_segment_intersection.cpp:12
std::vector< std::valarray< T > > hadamard_product(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:494
Class for representing graph as an adjacency list.
Definition: is_graph_bipartite.cpp:51
void kohonen_som(const std::vector< std::valarray< double >> &X, std::vector< std::vector< std::valarray< double >>> *W, double alpha_min)
Definition: kohonen_som_topology.cpp:269
void push(char ch)
push byte to stack variable
Definition: paranthesis_matching.cpp:26
std::shared_ptr< TrieNode > removeWordHelper(const std::string &word, std::shared_ptr< TrieNode > curr, size_t index)
Definition: trie_modern.cpp:64
void test_3d_classes2(std::vector< std::valarray< double >> *data)
Definition: kohonen_som_topology.cpp:493
bool searchingProber(const Entry &entry, int key)
Definition: quadratic_probing_hash_table.cpp:119
char pop()
pop a byte out of stack variable
Definition: paranthesis_matching.cpp:29
void display()
Definition: linear_probing_hash_table.cpp:120
std::vector< std::valarray< T > > multiply(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:460
double _random(double a, double b)
Definition: kohonen_som_topology.cpp:53
void addEdge(Edge const &edge)
Definition: cycle_check_directed_graph.cpp:124
void spirograph(std::array< std::pair< double, double >, N > *points, double l, double k, double rot)
Definition: spirograph.cpp:70
int lowest_common_ancestor(int u, int v) const
Query the structure to find the lowest common ancestor. Assumes that the provided numbers are valid i...
Definition: lowest_common_ancestor.cpp:164
void display()
Display the chain.
Definition: chaining.cpp:63
int main()
Definition: shortest_common_supersequence.cpp:164
void quickSort(int arr[], int low, int high)
Definition: quick_sort.cpp:63
void test2(double eta=0.01)
Definition: adaline_learning.cpp:262
void test3(double eta=0.01)
Definition: adaline_learning.cpp:313
Definition: adaline_learning.cpp:46
static void test3()
Definition: hamiltons_cycle.cpp:122
void zeroes_initialization(std::vector< std::valarray< T >> &A, const std::pair< size_t, size_t > &shape)
Definition: vector_ops.hpp:213
std::vector< float > operator/(std::vector< T > const &A, float const scalar)
Definition: ordinary_least_squares_regressor.cpp:174
void kohonen_som_tracer(const std::vector< std::valarray< double >> &X, std::vector< std::valarray< double >> *W, double alpha_min)
Definition: kohonen_som_trace.cpp:149
Various utility functions used in Neural network.
void addEdge(int u, int v)
Function that add an edge between two nodes or vertices of graph.
Definition: is_graph_bipartite.cpp:83
void clear()
Definition: stack.h:112
int n
size of the graph
Definition: is_graph_bipartite.cpp:53
int main(int argc, char **argv)
Definition: adaline_learning.cpp:357
Definition: list_array.cpp:8
void test_circle(std::vector< std::valarray< double >> *data)
Definition: kohonen_som_trace.cpp:196
int main()
Definition: quadratic_probing_hash_table.cpp:246
T sum(const std::vector< std::valarray< T >> &A)
Definition: vector_ops.hpp:232
This class specifies the basic operation on a stack as a linked list.
int main()
Definition: graph_coloring.cpp:96
std::vector< std::vector< T > > get_transpose(std::vector< std::vector< T >> const &A)
Definition: ordinary_least_squares_regressor.cpp:300
double dtanh(const double &x)
Definition: neural_network.cpp:95