|
Algorithms_in_C++
1.0.0
Set of algorithms implemented in C++.
|
Go to the documentation of this file.
9 #ifndef VECTOR_OPS_FOR_NN
10 #define VECTOR_OPS_FOR_NN
35 for(
const auto &a : A) {
36 for(
const auto &x : a) {
55 std::cerr <<
"(" << A.first <<
", " << A.second <<
")";
69 for(
const auto &a : A) {
86 B.resize(A.size() + 1);
87 for(
size_t i = 0; i < A.size(); i++) {
90 B[B.size() - 1] = ele;
100 template <
typename T>
103 B.resize(A.size() - 1);
104 for(
size_t i = 1; i < A.size(); i ++) {
116 template <
typename T>
119 B.resize(A.size() - 1);
120 for(
size_t i = 0; i < A.size() - 1; i ++) {
132 template <
typename T>
136 if(A.size() != B.size())
138 std::cerr <<
"ERROR : Can not equally shuffle two vectors with different sizes: ";
142 for(
size_t i = 0; i < A.size(); i++) {
145 size_t random_index =
std::rand() % A.size();
161 template <
typename T>
170 for(
size_t i = 0; i < shape.first; i++) {
172 row.resize(shape.second);
174 r = distribution(generator);
188 template <
typename T>
193 for(
size_t i = 0; i < shape.first; i++) {
195 row.resize(shape.second);
208 template <
typename T>
213 for(
size_t i = 0; i < shape.first; i++) {
215 row.resize(shape.second);
227 template <
typename T>
230 for(
const auto &a : A) {
242 template <
typename T>
244 const size_t sub_size = (*A.begin()).size();
245 for(
const auto &a : A) {
247 if(a.size() != sub_size) {
263 template <
typename T>
269 if(shape.first != 1) {
270 std::cerr <<
"ERROR: (MinMax Scaling) Supplied vector is not supported for minmax scaling, shape: ";
274 for(
size_t i = 0; i < shape.second; i++) {
275 T min = B[0][0][i], max = B[0][0][i];
276 for(
size_t j = 0; j < B.
size(); j++) {
281 for(
size_t j = 0; j < B.
size(); j++) {
283 B[j][0][i] = ((B[j][0][i] - min) / (max - min)) * (high - low) + low;
295 template <
typename T>
299 if(shape.first != 1) {
314 template <
typename T>
316 T (*func) (
const T &)) {
331 template <
typename T>
347 template <
typename T>
362 template <
typename T>
367 for(
size_t j = 0; j < shape.second; j++) {
369 row.resize(shape.first);
370 for(
size_t i = 0; i < shape.first; i++) {
385 template <
typename T>
390 if(shape_a.first != shape_b.first || shape_a.second != shape_b.second) {
391 std::cerr <<
"ERROR: (vector addition) Supplied vectors have different shapes ";
396 for(
size_t i = 0; i < A.size(); i++) {
409 template <
typename T>
414 if(shape_a.first != shape_b.first || shape_a.second != shape_b.second) {
415 std::cerr <<
"ERROR: (vector subtraction) Supplied vectors have different shapes ";
420 for(
size_t i = 0; i < A.size(); i++) {
433 template <
typename T>
438 if(shape_a.second != shape_b.first ) {
439 std::cerr <<
"ERROR: (multiply) Supplied vectors are not eligible for multiplication ";
445 for (
size_t i = 0; i < shape_a.first; i++) {
447 row.resize(shape_b.second);
448 for(
size_t j = 0; j < shape_b.second; j++) {
449 for(
size_t k = 0; k < shape_a.second; k++) {
450 row[j] += A[i][k] * B[k][j];
465 template <
typename T>
470 if(shape_a.first != shape_b.first || shape_a.second != shape_b.second) {
471 std::cerr <<
"ERROR: (hadamard_product) Supplied vectors have different shapes ";
476 for(
size_t i = 0; i < A.size(); i++) {
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
Definition: trie_tree.cpp:8
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:162
void equal_shuffle(std::vector< std::vector< std::valarray< T >> > &A, std::vector< std::vector< std::valarray< T >> > &B)
Definition: vector_ops.hpp:133
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:95
int key
key value
Definition: linear_probing_hash_table.cpp:37
std::vector< std::valarray< T > > apply_function(const std::vector< std::valarray< T >> &A, T(*func)(const T &))
Definition: vector_ops.hpp:315
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
static void test()
Definition: jarvis_algorithm.cpp:151
void removalInfo(int key)
Definition: quadratic_probing_hash_table.cpp:222
static const int nax
stores the side of the vertex
Definition: is_graph_bipartite.cpp:57
std::vector< std::valarray< T > > transpose(const std::vector< std::valarray< T >> &A)
Definition: vector_ops.hpp:363
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:61
#define MAX
Definition: fibonacci_fast.cpp:27
std::valarray< T > pop_back(const std::valarray< T > &A)
Definition: vector_ops.hpp:117
void addVertices(unsigned int num=1)
Definition: cycle_check_directed_graph.cpp:118
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< 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:101
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:150
Definition: linear_probing_hash_table.cpp:35
std::vector< int > level
Stores the distance from the root.
Definition: lowest_common_ancestor.cpp:105
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
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:322
An implementation of hash table using quadratic probing algorithm.
void test1()
Definition: kohonen_som_topology.cpp:369
double fit(const std::vector< double > &x, const int &y)
Definition: adaline_learning.cpp:119
int main()
Definition: double_hash_hash_table.cpp:250
std::vector< std::valarray< T > > operator/(const std::vector< std::valarray< T >> &A, const T &val)
Definition: vector_ops.hpp:348
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:711
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:80
std::vector< std::valarray< T > > operator-(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:410
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:160
void display()
Definition: quadratic_probing_hash_table.cpp:142
Definition: quadratic_probing_hash_table.cpp:37
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
std::vector< std::valarray< T > > operator+(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:386
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:116
Machine learning algorithms.
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
std::vector< std::vector< std::valarray< double > > > batch_predict(const std::vector< std::vector< std::valarray< double >>> &X)
Definition: neural_network.cpp:466
std::ostream & operator<<(std::ostream &out, std::vector< std::valarray< T >> const &A)
Definition: vector_ops.hpp:31
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:624
int main()
Definition: breadth_first_search.cpp:161
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
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:466
std::vector< std::valarray< T > > multiply(const std::vector< std::valarray< T >> &A, const std::vector< std::valarray< T >> &B)
Definition: vector_ops.hpp:434
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()
namespace graph
Definition: is_graph_bipartite.cpp:129
size_t argmax(const std::vector< std::valarray< T >> &A)
Definition: vector_ops.hpp:296
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:766
int main(int argc, char **argv)
Definition: kohonen_som_trace.cpp:457
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
node * createNode(int data)
Definition: avltree.cpp:21
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:594
void unit_matrix_initialization(std::vector< std::valarray< T >> &A, const std::pair< size_t, size_t > &shape)
Definition: vector_ops.hpp:189
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:103
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
std::vector< std::valarray< double > > single_predict(const std::vector< std::valarray< double >> &X)
Definition: neural_network.cpp:453
DenseLayer(const int &neurons, const std::string &activation, const std::vector< std::valarray< double >> &kernal)
Definition: neural_network.cpp:195
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
node * insert(node *root, int item)
Definition: avltree.cpp:66
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
std::vector< std::vector< int > > neighbors
for each vertex it stores a list indicies of its neighbors
Definition: lowest_common_ancestor.cpp:78
Various activation functions used in Neural network.
std::vector< std::vector< int > > adj
size of the graph
Definition: is_graph_bipartite.cpp:53
double sigmoid(const double &x)
Definition: neural_network.cpp:53
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:71
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:84
void test()
Definition: armstrong_number.cpp:59
void add(int key)
Definition: quadratic_probing_hash_table.cpp:182
double square(const double &x)
Definition: neural_network.cpp:111
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
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:98
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
int main()
Definition: jarvis_algorithm.cpp:176
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:574
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
Graph(unsigned int vertices, AdjList &&adjList)
Definition: cycle_check_directed_graph.cpp:76
Definition: neural_network.cpp:261
std::vector< std::vector< std::valarray< double > > > __detailed_single_prediction(const std::vector< std::valarray< double >> &X)
Definition: neural_network.cpp:299
Functions for Jarvis’s algorithm.
std::vector< int > side
adj stores the graph as an adjacency list
Definition: is_graph_bipartite.cpp:55
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:265
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:121
bool hamilton_cycle(const std::vector< std::vector< bool >> &routes)
Definition: hamiltons_cycle.cpp:30
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:270
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:742
T emplace_back(T... args)
void test()
Test function to save resulting points to a CSV file.
Definition: spirograph.cpp:93
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
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:387
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
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:243
void save_model(const std::string &_file_name)
Definition: neural_network.cpp:639
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:73
Definition: huffman.cpp:28
Graph(int size=nax)
Constructor that initializes the graph on creation.
Definition: is_graph_bipartite.cpp:64
double dsigmoid(const double &x)
Definition: neural_network.cpp:62
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:256
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:52
double identity_function(const double &x)
Definition: neural_network.cpp:119
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
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.
std::vector< std::valarray< T > > operator*(const std::vector< std::valarray< T >> &A, const T &val)
Definition: vector_ops.hpp:332
DenseLayer(const DenseLayer &layer)=default
int main()
Definition: neural_network.cpp:786
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
Definition: neural_network.cpp:134
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:107
Definition: line_segment_intersection.cpp:12
Class for representing graph as an adjacency list.
Definition: is_graph_bipartite.cpp:49
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
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
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
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:209
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:81
void clear()
Definition: stack.h:112
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:228
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:98