annotate docs/modules/txt/PseudoHeap.txt @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 PseudoHeap
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
4 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
5 use PseudoHeap;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
6
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
7 use PseudoHeap qw(:all);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
8
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
9 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
10 PseudoHeap class provides the following methods:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
11
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
12 new, AddKeyValuePair, AddKeyValuePairs, DeleteKey, DeleteKeys,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
13 DeleteMaxKey, DeleteMinKey, GetCurrentSize, GetKeyType, GetKeyValues,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
14 GetKeys, GetMaxKey, GetMaxSize, GetMinKey, GetSortedKeys, GetType,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
15 SetKeyType, SetMaxSize, SetType, StringifyPseudoHeap
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
16
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
17 PseudoHeap is designed to support tracking of a specific number of
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
18 largest or smallest key/value pairs with numeric or alphanumeric keys
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
19 along with corresponding scalar or reference values.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
20
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
21 Although PseudoHeap is conceptually similar to a heap, it lacks number
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
22 of key properties of a traditional heap data structure: no concept of
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
23 root, parent and child nodes; no ordering of keys in any particular
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
24 order; no specific location greatest or smallest key.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
25
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
26 The keys are simply stored in a hash with each key pointing to an array
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
27 containing specified values. The min/max keys are updated during
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
28 addition and deletion of key/value pairs; these can be retrieved by
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
29 accessing corresponding hash.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
30
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
31 Addition and deletion of key/value is also straightforward using hashes.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
32 However, min/max keys need to be identified which is done using Perl
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
33 sort function on the keys.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
34
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
35 FUNCTIONS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36 new
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37 $NewPseudoHeap = new PseudoHeap(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39 Using specified parameters *NamesAndValues* names and values hash,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40 new method creates a new object and returns a reference to a newly
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41 created NewPseudoHeap object. By default, the following property
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 names are initialized:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44 Type = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45 KeyType = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46 MaxSize = 10;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50 $NewPseudoHeap = new PseudoHeap(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51 'Type' => 'KeepTopN',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 'KeyType' => 'Numeric');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54 $NewPseudoHeap = new PseudoHeap(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55 'Type' => 'KeepTopN',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56 'KeyType' => 'AlphaNumeric',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 'MaxSize' => '20');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59 $NewPseudoHeap = new PseudoHeap(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60 'Type' => 'KeepBottomN',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61 'KeyType' => 'AlphaNumeric',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62 'MaxSize' => '20');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64 AddKeyValuePair
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65 $PseudoHeap->AddKeyValuePair($Key, $Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67 Add specified *Key* and *Value* pair to pseudo heap using a new or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68 an existing key and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70 AddKeyValuePairs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 $PseudoHeap->AddKeyValuePairs(@KeyValuePairs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73 Adds multiple key and value pairs specified in array *KeyValuePairs*
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74 to pseudo heap using a new or existing keys and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 DeleteKey
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 $PseudoHeap->DeleteKey($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 Deletes a specified *Key* from pseudo heap and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 DeleteKeys
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82 $PseudoHeap->DeleteKeys(@Keys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 Deletes a specified *Keys* from pseudo heap and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86 DeleteMaxKey
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87 $PseudoHeap->DeleteMaxKey();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89 Deletes a *MaxKey* along with its associated values from pseudo heap
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90 and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92 DeleteMinKey
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 $PseudoHeap->DeleteMinKey();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95 Deletes a *MinKey* along with its associated values from pseudo heap
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96 and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98 GetCurrentSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 $Size = $PseudoHeap->GetCurrentSize();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101 Returns current *Size* of pseudo heap corresponding to number to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102 keys in heap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104 GetKeyType
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 $KeyType = $PseudoHeap->GetKeyType();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107 Returns *KeyType* of pseudo heap. Possible KeyType values: *Numeric
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108 or Alphanumeric*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110 GetKeyValues
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111 @Values = $PseudoHeap->GetKeyValues($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 $NumOfValues = $PseudoHeap->GetKeyValues($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114 Returns an array containing Values associated with a specified *Key*
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115 in pseudo heap. In scalar context, it returns number of values
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 associated with a key.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 GetKeys
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 @Keys = $PseudoHeap->GetKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120 $NumOfKeys = $PseudoHeap->GetKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122 Returns an array containing all Keys in pseudo heap. In scalar
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123 context, it returns total number of keys.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 GetMaxKey
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126 $MaxKey = $PseudoHeap->GetMaxKey();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128 Returns *MaxKey* present in pseudo heap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 GetMaxSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131 $MaxSize = $PseudoHeap->GetMaxSize();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133 Returns *MaxSize* of pseudo heap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135 GetMinKey
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136 $MinKey = $PseudoHeap->GetMinKey();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138 Returns *MinKey* present in pseudo heap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140 GetSortedKeys
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141 @Keys = $PseudoHeap->GetSortedKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142 $NumOfKeys = $PseudoHeap->GetSortedKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144 Returns an array containing all sorted Keys in pseudo heap. In
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145 scalar context, it retruns total number of keys.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147 Keys are sorted based on values of Type and KeyType for pseudo heap:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149 Type KeyType SortOrder SortOperator
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 KeepTopN Numeric Descending <=>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151 KeepTopN Alphanumeric Descending cmp
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152 KeepBottomN Numeric Ascending <=>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 KeepBottomN Alphanumeric Ascending cmp
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155 GetType
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156 $Type = $PseudoHeap->GetType();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158 Returns *Type* of pseudo heap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160 SetKeyType
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 $PseudoHeap->SetKeyType($KeyType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163 Sets *KeyType* of pseudo heap and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165 SetMaxSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 $PseudoHeap->SetMaxSize($MaxSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168 Sets *MaxSize* of pseudo heap and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170 SetType
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171 $PseudoHeap->SetType($Type);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173 Sets *Type* of pseudo heap and returns PseudoHeap.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175 StringifyPseudoHeap
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176 $PseudoHeapString = $PseudoHeap->StringifyPseudoHeap();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178 Returns a string containing information about *PseudoHeap* object
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188 MayaChemTools is free software; you can redistribute it and/or modify it
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 under the terms of the GNU Lesser General Public License as published by
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190 the Free Software Foundation; either version 3 of the License, or (at
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191 your option) any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192