merge1
function that merges two sorted lists such that
the resulting list is sorted in Merge.idr Bezout
that (given two natural numbers a and b) performs Euclidean algorithm and returns two integers x and y such that d = ax +by
where d = GCD (a,b) in Bezout.idrEuclList
which gives a list of quotients and remainders when applying Euclid’s algorithm to two natural numbers a and b. Link here. This commit consists of both my code and Rohit’s code as Rohit had accidentally put his code outside the code folder.IsDivisibleZ
and IsCommonFactorZ
types which are based on the corresponding data types for natural numbers created by Sriram and Rohit respectively. Also the function oneDiv
is based on Sriram’s code. The rest of the code in Divisors.idr is my code as of the time of writing this report.Implemented LTEZ
type which is the less than or equal to type for integers. Link here
DecidePositive
,a function that returns whether an integer is positive or not with proof.isLTEZ
function that works just like isLTE for NatZZ.idr
when I was fixing some errors Link herePlusDiv
and MultDiv
for natural numbers which were later changed to integers in Divisors.idr
.Link here
2.Made the euclDivide
function total Link hereAdjacentsAreConnected
function returns a proof that 2 adjacent vertices are connected by an edge or nothing if they are not connected.EdgeisPath
function proves that adjacent vertices (i.e. vertices that have an edge between them) are connectedConnectedComponents
takes a simple graph (symmetric matrix with 0’s and 1’s) and returns a list of connected components as a list of lists of NatsPathWithProof
function returns a simple path between two vertices if there is a path with proof or Nothing if there is no path. Here a path is represented as a List of vertices that were traversed.1.The file GCDZZ.idr has a function gcdZZ
which returns the gcd of two integers with proof given that not both of them are zero
commit 7040bd71e3ed10410ca039065708650468f41b7b
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sun Feb 24 21:06:19 2019 +0530
Commit: GitHub
CommitDate: Sun Feb 24 21:06:19 2019 +0530
Added some documentation
Added some documentation
Code/GCDZZ.idr | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 3cc8b0b75378c9bc8f47fa938bf3cd27e6a12e63
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sun Feb 24 21:02:07 2019 +0530
Commit: GitHub
CommitDate: Sun Feb 24 21:02:07 2019 +0530
Fixed an error in the documentation
Fixed an error in the documentation
Code/Divisors.idr | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 151a3b374fb9d69aca91fe2f812410fe746ede9d
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sun Feb 24 21:00:32 2019 +0530
Commit: GitHub
CommitDate: Sun Feb 24 21:00:32 2019 +0530
Update report
Update report
_reports/shafil/shafil.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit c1ba88aaac4886a6d146d2add6150145a0871b7a
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 22:14:47 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 22:14:47 2019 +0530
Added the NonNegative data type
Added the NonNegative data type
Code/ZZUtils.idr | 6 ++++++
1 file changed, 6 insertions(+)
commit 1e286ac0f776da7d3094a578b966d210eca5ea76
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 22:05:53 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 22:05:53 2019 +0530
exported it
exported it
Code/GCDZZ.idr | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit cabe3ee49e3995300e52993d717294e29ed6124e
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 21:59:51 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 21:59:51 2019 +0530
gcdZZ returns gcd with proof for a and b where a and b are not both zero
gcdZZ returns gcd with proof for a and b where a and b are not both zero
Code/GCDZZ.idr | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
commit 73af360c14ae88bbbbb385aaa447e48187f55b65
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 21:57:51 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 21:57:51 2019 +0530
A minor name change
Code/Divisors.idr | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit d0c7a97ea7447cd14e544e5b688005686bf7ccc7
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 20:50:14 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 20:50:14 2019 +0530
Created a GCDCalc function
Created a GCDCalc function that returns GCD with proof for two integers a and such that a is positive and b is non negative.
I couldn't convince idris that it is total. So I did this in a new file.
Code/GCDZZ.idr | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
commit<PHONE_NUMBER>53fcfce20edd3a40e4c77528744736
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 20:47:29 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 20:47:29 2019 +0530
Added a subOnBothSides function
Added a subOnBothSides function which states that if a = b+c , then a+(-c)=b
Code/ZZ.idr | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 24a18b9e0ed934f9ec563e7dc8963b5142cd24f7
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 20:46:16 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 20:46:16 2019 +0530
A utility file for ZZ
Created a utility file for ZZ .
Code/ZZUtils.idr | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
commit 099b3a34fdd34529526fab7e5823ddd195aa9bbb
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 23 20:44:49 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 23 20:44:49 2019 +0530
Added a few functions that help in finding Gcd
Added a few functions that help in finding Gcd which include different versions of euclidConservesGcd and also that gcd (-a,b)=gcd (a,b)
and other auxiliary functions
Code/Divisors.idr | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 66 insertions(+), 4 deletions(-)
commit 8b72b8e7f55bd58a2cca4c3d15d6c2f3c168a761
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 20 13:59:19 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 20 13:59:19 2019 +0530
Made sure the import is working
Changed the name of Lecture.Evens and imported it into Merge.idr
Code/Merge.idr | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
commit b8820d084173839192dff38a044fab851a0dbeb6
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 20 13:57:53 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 20 13:57:53 2019 +0530
renaming so that it is importable
Code/{Lecture.Evens.idr => Lecture_Evens.idr} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
commit 5a74f42697c26f4d01bd371a1634fb8e261a979b
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 20 13:41:28 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 20 13:41:28 2019 +0530
Update shafil.md
_reports/shafil/shafil.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f568ccbbed255260657d6671625dc63d93e0d941
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 20 13:41:00 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 20 13:41:00 2019 +0530
Update report
The report
_reports/shafil/shafil.md | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
commit 11b00d349f82cee4c88aad11c258e9979bcb16f3
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 19 19:38:15 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 19 19:38:15 2019 +0530
made euclidDivide total
euclidDivide function gives quotient and remainder on division with proof . It wasnt total before .
Code/gcd.idr | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
commit ad081e2203ec13324df814328449a8b7b655043c
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 19 17:33:55 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 19 17:33:55 2019 +0530
Implemented isLTE function for ZZ
Implemented isLTE function for ZZ and also LTEZSucc and LTEZPred which proves that the successors and predecessors of an integer have the same order as the original integers
Code/ZZ.idr | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
commit 2499963e7bd8e8a576ce0d302760ac81537189b3
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:08:49 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:08:49 2019 +0530
Update gcd.idr
Code/gcd.idr | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit ff00d4e82d5a1c18cb1dc33f588cc47058931224
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:08:08 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:08:08 2019 +0530
Update Rationals.idr
Code/Rationals.idr | 7 -------
1 file changed, 7 deletions(-)
commit 5c6f8308ad7940bd56147edf505cb2431c916c3c
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:07:23 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:07:23 2019 +0530
Update Primes.idr
Code/Primes.idr | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
commit faa807e50e658f1a54c8640b85ffce140715eaa2
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:06:14 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:06:14 2019 +0530
Update ZZ.idr
Code/ZZ.idr | 39 ++++++++++++++++-----------------------
1 file changed, 16 insertions(+), 23 deletions(-)
commit dfc6cf315d3380d50d2c06a43701886c0ac70fd8
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:05:29 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:05:29 2019 +0530
Update Divisors.idr
Code/Divisors.idr | 52 ++++++++++++++++++++++++++--------------------------
1 file changed, 26 insertions(+), 26 deletions(-)
commit 82ac9e75b3f0da5d6080ca4969c898a75b1f551a
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:04:45 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:04:45 2019 +0530
Update Bezout.idr
Code/Bezout.idr | 50 +++++++++++++-------------------------------------
1 file changed, 13 insertions(+), 37 deletions(-)
commit e2325bf88a48a7f39cd13d2f3183d5eecd7c119b
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 16 23:04:09 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 16 23:04:09 2019 +0530
Update NatUtils.idr
Code/NatUtils.idr | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
commit dab2e23b626b6d97f60cb10832e5f8dd1d47c074
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Fri Feb 15 20:26:45 2019 +0530
Commit: GitHub
CommitDate: Fri Feb 15 20:26:45 2019 +0530
Update Divisors.idr
Code/Divisors.idr | 52 ++++++++++++++++++++++++++++------------------------
1 file changed, 28 insertions(+), 24 deletions(-)
commit 80d17770a56c23186b11091d396908b22e37fb21
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 13 22:30:40 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 13 22:30:40 2019 +0530
Copied some code from ZZ.idr which might be useful
Added some functions that deal with LTE and in particular, the theorem that (m<=n) and (n<=m) implies n=m
Code/NatUtils.idr | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
commit cea3972ad09579f374603e6c8c8379ba17e5fda0
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 13 22:26:55 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 13 22:26:55 2019 +0530
The Theorem that if c and d are positive, d|c and c|d =>(c=d)
PosDivAndDivByImpliesEqual is the theorem that if c and d are positive, d|c and c|d =>(c=d)
Implemented using many auxiliary functions from ZZ.idr
Code/Divisors.idr | 10 ++++++++++
1 file changed, 10 insertions(+)
commit a9260c3fc1d4dfcbe515705cc7d670d50b260d8d
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 13 22:23:45 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 13 22:23:45 2019 +0530
Implemented LTE type for ZZ
Implemented LTE type for ZZ
Also wrote some other useful theorems and functions
Code/ZZ.idr | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 89 insertions(+), 4 deletions(-)
commit 41e311a76ed8086f09976080c00dde49446fe948
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 13 15:53:12 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 13 15:53:12 2019 +0530
Added the theorem gcd(a,b)=d => gcd (b, a+ b(-m))=d
This theorem can be used to show that that the Gcd is conserved in each step of the Euclid's algorithm
Code/Divisors.idr | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
commit 7c9388fb666202f5c0ee843e7bedc5c097b231af
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Feb 13 15:50:22 2019 +0530
Commit: GitHub
CommitDate: Wed Feb 13 15:50:22 2019 +0530
Added a few functions that can be used for rewriting
addAndSubNeutralZ function gives a proof that (((a+b)+(-b))=a)
Code/ZZ.idr | 3 +++
1 file changed, 3 insertions(+)
commit 37108182ab621afd71e949eab8bc410ace5c3583
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 23:58:18 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 23:58:18 2019 +0530
Added some useful theorems about gcd
proved that gcd(a,0)=a
proved that a|a
A sketch of a proof that Euclid's algorithm preserves gcd in each step.
Code/Divisors.idr | 33 +++++++++++++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
commit 35e6d26e5ae359b3922ef63bd26966777ec50584
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 23:54:44 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 23:54:44 2019 +0530
Added some useful functions
multNegateRightZ gives a proof that k*(-j)=-(k*j)
multNegateRightIsNegateZ takes a proof of a=bc and creates a proof of (-a)=b(-c)
Code/ZZ.idr | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
commit 6bd8d9b3db72d5e0dae70ff954fb82c1f6c9eaed
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 20:39:42 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 20:39:42 2019 +0530
Included a Gcd type that may be easier to use
Expanded on Rohit's ideas for defining common factors and Gcd. The Gcd is defined in a slightly different way.
Code/Divisors.idr | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
commit 7c510cd0790d8b175b267e57264cf0102d22dc8e
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 20:31:37 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 20:31:37 2019 +0530
Created an IsPositive Data type
Created a function that returns a either a proof that an integer is positive or a contradiction to the statement that the integer is positive
Code/ZZ.idr | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
commit 519e30325385a58254f35020cea7e08180bb4850
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 14:21:35 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 14:21:35 2019 +0530
Changed import Evens to import Lecture.Evens
Changed import Evens to import Lecture.Evens
Code/Merge.idr | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 5e61f6060314f68d4c9851f14965ca307ae61357
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 14:19:39 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 14:19:39 2019 +0530
Added a TransDivide function
Added a TransDivide function which states that b|a and c|b =>c|a
Code/Divisors.idr | 3 +++
1 file changed, 3 insertions(+)
commit f7f05adfce47e5ccb93b231ec000c576f3d217b1
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 14:16:18 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 14:16:18 2019 +0530
Copied Rohit's code into File Bezout.idr and added a EuclList function
Copied Rohit's code into File Bezout.idr and added a EuclList function which returns a list of quotients and remainders on applying Euclid's Algorithm which may be useful in future proofs
Code/Bezout.idr | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 120 insertions(+), 12 deletions(-)
commit 5172740e01ca549f7b7490084c0545c142677c17
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 10:46:59 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 10:46:59 2019 +0530
Changed all Nats to ZZ in gcd.idr
This is just part of the file gcd.idr with all Nats changed to ZZ
Code/Divisors.idr | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
commit a275fc1c07c2dd6073d385351419d4abe1e3dd55
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 10:45:44 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 10:45:44 2019 +0530
Delete Divisors.idr
Divisors.idr | 27 ---------------------------
1 file changed, 27 deletions(-)
commit 727e4cc269adc852173a28c91fdad5a045cafffa
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 10:34:38 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 10:34:38 2019 +0530
Just changed all Nats to ZZ in gcd.idr
This is just some of the functions from gcd.idr with Nats changed to ZZ. I didnt delete the original file.
Divisors.idr | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
commit 6395fa5de4c1b394275b1307a77f8a80ea6e7b60
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 10:31:47 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 10:31:47 2019 +0530
Two useful functions and import Sign.idr
Added two functions that plusConstantRightZ and plusConstantLeftZ that give proofs that adding constants to equals does not change equality
Modelled on the corresponding functions for Nat
Code/ZZ.idr | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
commit 3e5c7d75bf1c1cd8a6873f77eaa6c89f43f2982b
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Tue Feb 12 10:27:50 2019 +0530
Commit: GitHub
CommitDate: Tue Feb 12 10:27:50 2019 +0530
Copied Sign.idr into the folder for easy access
This is not my Code
Code/Sign.idr | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
commit be28efe9bbe3c28da17edadb3d7770034a901178
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sun Feb 10 15:31:31 2019 +0530
Commit: GitHub
CommitDate: Sun Feb 10 15:31:31 2019 +0530
Update gcd.idr
Code/gcd.idr | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
commit c19cbf1c7064121fe551b75304ab797d95f739e2
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Fri Feb 8 19:33:09 2019 +0530
Commit: GitHub
CommitDate: Fri Feb 8 19:33:09 2019 +0530
Rename graphexamples.idr to Graphexamples.idr
Code/{graphexamples.idr => Graphexamples.idr} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
commit 21b2fa9e938d2865e346187463663d90663905e3
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Fri Feb 8 19:32:33 2019 +0530
Commit: GitHub
CommitDate: Fri Feb 8 19:32:33 2019 +0530
Create graphexamples.idr
Code/graphexamples.idr | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
commit 50a4094370a05a05f8c38a08bfc1517ed1d68577
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Fri Feb 8 19:31:10 2019 +0530
Commit: GitHub
CommitDate: Fri Feb 8 19:31:10 2019 +0530
Update Graph.idr
Code/Graph.idr | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
commit 8b7ad87014481460ee0440b37e9287332b9e2ef3
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Mon Feb 4 17:42:34 2019 +0530
Commit: GitHub
CommitDate: Mon Feb 4 17:42:34 2019 +0530
Update Graph.idr
Code/Graph.idr | 44 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 40 insertions(+), 4 deletions(-)
commit 8afdd47a839d4991403158ceb3943dfcb15747de
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Mon Feb 4 15:11:15 2019 +0530
Commit: GitHub
CommitDate: Mon Feb 4 15:11:15 2019 +0530
Update Graph.idr
Code/Graph.idr | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
commit a9f7cc46d45735ab8dbdf88bcf93fcaae0706843
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 2 11:59:38 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 2 11:59:38 2019 +0530
Update Graph.idr
Code/Graph.idr | 35 ++++++++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
commit 289c48281868bd78b149b27410dba3481d85ed34
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 2 10:16:44 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 2 10:16:44 2019 +0530
Update Graph.idr
Code/Graph.idr | 15 +++++++++++++++
1 file changed, 15 insertions(+)
commit ae10a14435004be0a6fbcbc05455272c21c75b8e
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 2 07:26:29 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 2 07:26:29 2019 +0530
Update Graph.idr
Code/Graph.idr | 39 ++++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 19 deletions(-)
commit 5c75d0add5fe4527bfffc93ea9bb2a786b32ad6a
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Sat Feb 2 07:14:50 2019 +0530
Commit: GitHub
CommitDate: Sat Feb 2 07:14:50 2019 +0530
Create Graph.idr
Code/Graph.idr | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
commit ff3a44a60c4ba678eb03dae47b46205fa7159e67
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Thu Jan 24 14:41:27 2019 +0530
Commit: GitHub
CommitDate: Thu Jan 24 14:41:27 2019 +0530
Finding the Bezout coefficients
The Bezout function in this program gives the coefficients in the Bezout Lemma
Code/Bezout.idr | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
commit ad53e8b17293af28066f32bf8a35ef216d5c7f0b
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Jan 23 21:44:39 2019 +0530
Commit: GitHub
CommitDate: Wed Jan 23 21:44:39 2019 +0530
Correction to merge function
I have corrected the merge function and (i think) it works fine now.
again, I couldnt do mergesort yet
Code/merge.idr | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
commit 23a7fc48800b8d9aff18b5b74db4a20a6632520d
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Jan 23 19:22:32 2019 +0530
Commit: GitHub
CommitDate: Wed Jan 23 19:22:32 2019 +0530
merge function for the mergesort
I implemented the merge function required for mergesort. I had to change it a little so that the types matched. You will see that i had to transfer x from one vector to the other . I tried to implement mergesort. The code is given as comment. But it doesnt work (I think it is because it cant recognise that (n-s)+s =n )
Code/merge.idr | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit a37ff8a84b5910ba896991a3994960d65269ab39
Author: shafilmaheenn<EMAIL_ADDRESS>AuthorDate: Wed Jan 23 19:12:24 2019 +0530
Commit: GitHub
CommitDate: Wed Jan 23 19:12:24 2019 +0530
The merge function for the mergesort
I implemented the merge function required for mergesort. I had to change it a little so that the types matched. You will see that i had to transfer x from one vector to the other . I tried to implement mergesort. The code is given as comment. But it doesnt work (I think it is because it cant recognise that (n-s)+s =n )
Code/merge.idr | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)


RRS Class Reference
Detailed Description
Round robin schedule.Definition at line 57 of file sports-league.cc.
Public Member Functions | |
| RRS (int t) | |
| Build a feasible schedule. | |
| void | hag (int w, IntArgs &h, IntArgs &a, IntArgs &g) |
| Home, away, and game information. | |
| ~RRS (void) | |
| Delete schedule. | |
Protected Member Functions | |
| int | weeks (void) const |
| Return number of weeks. | |
| int | periods (void) const |
| Return number of periods. | |
| int | gn (int h, int a) const |
| Game number for game between home team h and away team a. | |
| Play & | play (int p, int w) |
| Play for period p and week w. | |
Protected Attributes | |
| const int | teams |
| Number of teams. | |
| Play * | plays |
| Play information. |
Constructor & Destructor Documentation
| RRS::RRS | ( | int | t | ) | [inline] |
Build a feasible schedule.
The games of the first week are fixed as: .
The remaining games are computed by transforming a game from the previous week in a new game , where:
and
Definition at line 105 of file sports-league.cc.
| RRS::~RRS | ( | void | ) | [inline] |
Member Function Documentation
| int RRS::weeks | ( | void | ) | const [inline, protected] |
| int RRS::periods | ( | void | ) | const [inline, protected] |
| int RRS::gn | ( | int | h, | |
| int | a | |||
| ) | const [inline, protected] |
Game number for game between home team h and away team a.
Definition at line 72 of file sports-league.cc.
| Play& RRS::play | ( | int | p, | |
| int | w | |||
| ) | [inline, protected] |
Member Data Documentation
const int RRS::teams [protected] |
Play* RRS::plays [protected] |
The documentation for this class was generated from the following file:
- examples/sports-league.cc (Revision: 6033)


{% extends "layout.html" %} {% block content %}
Don't know which plans to use? Start with here! {% endblock %}


Observers: Included observers
Observer_Self
While not exactly good practice, in some cases it's probably cleanest to just have the event method with your model. That's where the Observer_Self comes in, it checks if you model has a method named after the event and prefixed with _event_. For example for the after_save event you need to add a public method _event_after_save() to your model so it can have the observer call on the model itself.
// Just add the Observer
protected static $_observers = array('Orm\\Observer_Self');
// But if you only observe some events you can optimize by only adding those
protected static $_observers = array('Orm\\Observer_Self' => array('after_save', 'before_insert'));
Observer_CreatedAt
This observer acts only upon before_insert and expects your model to have a created_at property which will be set to the Unix timestamp when saving for the first time.
// Just add the Observer
protected static $_observers = array('Orm\\Observer_CreatedAt');
// But adding it just for before_insert is enough
protected static $_observers = array('Orm\\Observer_CreatedAt' => array('before_insert'));
You can change the default property expected and use a mySQL timestamp instead of the defaults:
// Use mySQL timestamp instead of Unix timestamp
Orm\Observer_CreatedAt::$mysql_timestamp = true;
// Use property called just "created" instead of "created_at"
Orm\Observer_CreatedAt::$property = 'created';
Observer_UpdatedAt
This observer acts only upon before_save and expects your model to have a updated_at property which will be set to the Unix timestamp when saving (also during the first time).
// Just add the Observer
protected static $_observers = array('Orm\\Observer_UpdatedAt');
// But adding it just for before_insert is enough
protected static $_observers = array('Orm\\Observer_UpdatedAt' => array('before_save'));
You can change a $mysql_timestamp and $property value on this observer just like on the CreatedAt observer.
Observer_Validation
This observer only acts on before_save. It is used to prevent the model from saving if validation rules fail. It is best used with the FieldSet class.
The observer can be loaded as follows:
// Just add the Observer
protected static $_observers = array('Orm\\Observer_Validation');
// But adding it just for before_save is enough
protected static $_observers = array('Orm\\Observer_Validation' => array('before_save'));
Validation rules should be defined in your model in $_properties. This is demonstrated in Creating Models. After you have added the Validation Observer, the Orm\ValidationFailed exception will be thrown when the model's data fails to validate before save. As such, you must try/catch your calls to the save function of a model.
A complete CRUD functionality/scaffolding example controller is shown below:
class Controller_Articles extends Controller_Template {
public function action_index()
{
$data['articles'] = Model_Article::find('all');
$this->template->title = "Articles";
$this->template->content = View::factory('articles/index', $data);
}
public function action_view($id = false)
{
if (!$data['article'] = Model_Article::find($id))
{
Request::show_404();
}
$this->template->title = "Article";
$this->template->content = View::factory('articles/view', $data);
}
public function action_create()
{
$article = Model_Article::factory();
if (Input::method() == 'POST')
{
$article->name = Input::post('name');
$article->url = Input::post('url');
try
{
$article->save();
Session::set_flash('notice', 'Created article #' . $article->id);
Response::redirect('articles');
}
catch (Orm\ValidationFailed $e)
{
Session::set_flash('notice', 'Could not create article #' . $article->id);
}
}
$this->template->set_global('article', $article, false);
$this->template->title = "Articles";
$this->template->content = View::factory('articles/create');
}
public function action_edit($id = false)
{
if (!$article = Model_Article::find($id))
{
Request::show_404();
}
if (Input::method() == 'POST')
{
$article->name = Input::post('name');
$article->url = Input::post('url');
try
{
$article->save();
Session::set_flash('notice', 'Updated article #' . $id);
Response::redirect('articles');
}
catch (Orm\ValidationFailed $e) {
Session::set_flash('notice', 'Could not update article #' . $id);
}
}
$this->template->set_global('article', $article, false);
$this->template->title = "Articles";
$this->template->content = View::factory('articles/edit');
}
public function action_delete($id = null)
{
if ($article = Model_Article::find($id))
{
$article->delete();
Session::set_flash('notice', 'Deleted article #' . $id);
}
else
{
Session::set_flash('notice', 'Could not delete article #' . $id);
}
Response::redirect('articles');
}
}
This can be effectively used with the FieldSet class to provide CRUD forms for a model. In the following example, the create and edit forms are defined in a common view however you can just as easily define it in the model and obtain an instance of it in the view using Fieldset::instance.
if ($fs = Fieldset::instance(get_class($article)))
{
echo $fs->show_errors();
}
$fieldset = Fieldset::factory('article')->add_model($article, null, null);
$fieldset->add('name', 'Article Name', array('type' => 'text'));
$fieldset->add('url', 'Article\'s URL', array('type' => 'text'));
$fieldset->add('submit', ' ', array('value' => 'Submit', 'type' => 'submit'));
$fieldset->populate($article, TRUE);
echo $fieldset->build();
Observer_Typing
This is for 2 things: type enforcement for input and type casting for output from the DB. That means that when you're saving the Typing observer will try to cast the input value to the expected type and throw an exception when it can't. And when you're retrieving DB data, normally it would all be strings (even integers and floats) but with the typing observer those will be cast to their scalar type.
In addition to the above the Typing observer also adds support for serialized & json fields. Both should be string type fields ("text" preferably) but will have their value encoded for saving (using serialize() or json_encode()) and decoded when retrieving from the DB (using unserialize() or json_decode()).
The Observer_Typing isn't meant as an alternative to validation, don't try to use it as such. Neither are the exceptions thrown by this observer meant to be read by the visitor of your site, they're meant to help you debug your code.
// Just add the Observer
protected static $_observers = array('Orm\\Observer_Typing');
// But adding it just for these specific events is enough
protected static $_observers = array('Orm\\Observer_Typing' => array('before_save', 'after_save', 'after_load'));
For this observer to work you must have your the $_properties static variable set in your model, or not set at all using detection with DB::list_columns() (mySQL only!). When configuring it yourself the following settings are available:
| Param | Valid input | Description |
|---|---|---|
| data_type | varchar, int, integer, tinyint, smallint, mediumint, bigint, float, double, decimal, text, tinytext, mediumtext, longtext, enum, set, bool, boolean, serialize, json | The SQL data type, Required to have the typing observer used on a field. |
| is_nullable | bool | Whether null is allowed as a value |
| character_maximum_length | int | The maximum number of characters allowed for a string data type (varchar, text) |
| min | int | The minimal value for an integer |
| max | int | The mixamum value for an integer |
| options | array |
Array of valid string values for set or enum data type Note: currently the options themselves cannot contain comma's. |


TABLE OF INTERACTIONS WITH
RIFAMPICIN
See also: enzymatic inducers
From the French ANSM drug interactions document of
September 2016, pp. 192-197
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ABIRATERONE RxNorm: 1100072 ATC: L02BX03 |
Large decrease of the plasma concentrations of the abiraterone, with risk of lower effectiveness |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
AFATINIB RxNorm: 1430438 ATC: L01XE13 |
Decrease of the plasma concentrations of the afatinib due to increase of its metabolism by the rifampicin |
Precaution for use Clinical monitoring during the administration of these medications together and 1 to 2 weeks after they are stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ALBENDAZOLE RxNorm: 430 ATC: P02CA03 |
Large decrease of the plasma concentrations of the albendazole and of its active metabolite by the inducer, with risk of reduction of its effectiveness |
Precaution for use Clinical monitoring of the therapeutic response and possible adjustment of the dosage of the albendazole during the treatment with the enzymatic inducer and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
CALCIUM CHANNEL BLOCKERS CLASS CODE: CO8CA-001 |
Decrease of the plasma concentrations of the calcium channel blocker due to increase of its hepatic metabolism |
Not recommended --with the nimodipine Precaution for use Clinical monitoring and possible adjustment of the dosage of the calcium channel blocker during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
CLASS IA ANTIARRHYTHMICS CLASS CODE: C01B-002 |
Decrease of the plasma concentrations and of the effectiveness of the antiarrythmic (increase of its hepatic metabolism). |
Precaution for use Clinical monitoring, EKG, and possibly monitoring of the plasma concentration of the antiarrythmic. If needed, adjustment of the dosage of the antiarrythmic during the treatment with the rifampicin and after it is stopped (risk of overdose of the antiarrythmic) |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
VITAMIN K ANTAGONISTS CLASS CODE: B01AA-001 |
Decrease of the effect of the vitamin K antagonist due to increase of its hepatic metabolism by the rifampicin. |
Precaution for use More frequent testing of the INR. Possible adjustment of the dosage of the vitamin K antagonist during the treatment with the rifampicin and a week after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
APIXABAN RxNorm: 1364430 ATC: B01AF02 |
Decrease of the plasma concentrations of the apixaban by the rifampicin, with risk of decrease of the therapeutic effect. |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
APREPITANT RxNorm: 358255 ATC: A04AD12 |
Very large decrease of the concentrations of aprepitant |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ATORVASTATIN RxNorm: 83367 ATC: C10AA05 |
Very large decrease of the plasma concentrations of atorvastastatin, due to increase of its hepatic metabolism by the rifampicin |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ATOVAQUONE RxNorm: 60212 ATC: P01AX06 |
Decrease of the plasma concentrations of atorvaquone by the enzymatic inducer |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
BOCEPREVIR RxNorm: 1102129 ATC: J05AE12 |
Risk of decrease of the plasma concentrations of boceprevir |
Not recommended If administering these together cannot be avoided, regular clinical and biological monitoring, especially at the beginning of treatment with the two medications together. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
BOSENTAN RxNorm: 75207 ATC: C02KX01 |
Risk of decrease, large for the rifampicin, of the plasma concentrations of bosentan |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
BUSPIRONE RxNorm: 1827 ATC: N05BE01 |
Decrease of the plasma concentrations of the buspirone due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring and possible adjustment of the dosage of the buspirone during the treatment with rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
CARBAMAZEPINE RxNorm: 2002 ATC: N03AF01 |
Decrease of the plasma concentrations and of the effectiveness of the carbamazepine due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring, testing of the plasma concentrations and adjustment of the dosage of the carbamazepine during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
CARVEDILOL RxNom: 20352 ATC: C07AG02 |
Large decrease of the plasma concentrations of the carvedilol, due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Regular clinical monitoring and adjustment of the dosage of the carvedilol during the treatment with the rifampicin. When the rifampicin is stopped, risk of large increase of the plasma concentrations of carvedilol imposing a reduction of the dosage and strict clinical monitoring. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
CLARITHROMYCIN RxNorm: 21212 ATC: J01FA09 |
Decrease of the plasma concentrations and risk of lower effectiveness of the clarithromycin, especially with HIV patients, due to increase of its metabolism by the rifampicin |
Precaution for use Regular clinical and biological monitoring. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
CLOZAPINE RxNorm: 2626 ATC: N05AH02 |
Risk of ineffectiveness of the antipsychotic treatment (decrease of the plasma concentrations of clozapine due to increase of its hepatic metabolism) |
Precaution for use Clinical monitoring and possible increase of the dosage of the clozapine during the treatment with the rifampicin. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
COBICISTAT RxNorm: 1306284 ATC: V03AX03 |
Risk of decrease of the effectiveness of the cobicistat due to increase of its metabolism by the inducer |
CONTRAINDICATION |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
DABIGATRAN dabigatran etexilate in both RxNorm and ATC searches RxNorm: 1037042 ATC: B01AE07 |
Decrease of the plasma concentrations of dabigatran, with risk of decrease of the therapeutic effect |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
DEFERASIROX RxNorm: 614373 ATC: V03AC03 |
Risk of decrease of the plasma concentrations of deferasirox |
Precaution for use Monitor the ferritinemia during and after the treatment with the enzymatic inducer. If needed, adjustment of the dosage of deferasirox. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
DELAMANID RxNorm: 1344662 ATC: J04AK06 |
Decrease of the plasma concentrations of delamanid due to increase of its hepatic metabolism by the inducer |
CONTRAINDICATION |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
DRONEDARONE RxNorm: 233698 ATC: C01BD07 |
Large decrease of the concentrations of dronedarone due to increase of its metabolism, without significant modification of the active metabolite. |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
EFAVIRENZ RxNorm: 195085 ATC: J05AG03 |
Decrease of the plasma concentrations and of the effectiveness of the efavirenz due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Regular clinical and biological monitoring, especially at the beginning of the administration of the substances together. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
EXEMESTANE RxNorm: 258494 ATC: L02BG06 |
Risk of decrease of the effectiveness of the exemestane due to increase of its hepatic metabolism by the enzymatic inducer |
Take into account |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
FENTANYL RxNorm: 4337 ATC: N01AH01 N02AB03 |
Decrease of the plasma concentrations of fentanyl due to increase of its hepatic metabolism by the rifampicin. |
Not recommended Choose another opioid. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
FLUCONAZOLE RxNorm: 4450 ATC: D01AC15 J02AC01 |
Decrease of the plasma concentrations and of the effectiveness of the fluconazole due to increase of its metabolism by the rifampicin |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
GLUCOCORTICOIDS (EXCEPT HYDROCORTISONE) CLASS CODE: A0-H0-001 |
Decrease of the plasma concentrations and of the effectiveness of the corticoids due to increase of their hepatic metabolism by the rifampicin; the consequences are particularly great in patients with Addisons disease treated with hydrocortisone and in cases of transplants |
Precaution for use Clinical and biological monitoring; adjustment of the dosage of the corticoids during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
HALOPERIDOL RxNorm: 5093 ATC: N05AD01 |
Risk of decrease of the plasma concentrations of the haloperidol and of its therapeutic effectiveness, due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring, and, if needed, adjustment of the dosage during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
THYROID HORMONES CLASS CODE: H03AA |
Risk of clinically low thyroid in patients with already low thyroid, due to increase of the metabolism of the T3 and of the T4. |
Precaution for use Monitoring of serum concentrations of T3 and T4 and adjustment, if needed, of the dosage of the thyroid hormones during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
HYDROXYCHLOROQUINE RxNorm: 5521 ATC: P01BA02 |
Risk of lower therapeutic effect of the hydroxychloroquine, due to increase of its metabolism by the rifampicin |
Precaution for use Clinical monitoringand possible adjustment of the dosage of the hydroxychloroquine during the treatment with rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
IDELALISIB RxNorm: 1544460 ATC: L01XX47 |
Decrease of the plasma concentrations of idelalisib due to increase of its hepatic metabolism by the inducer |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
RITONAVIR BOOSTED PROTEASE INHIBITORS CLASS CODE: J05AE-002 |
Very large decrease of the plasma concentrations of the protease inhibitor, due to increase of its hepatic metabolism by the rifampicin. For the combination (saquinavir + ritonavir): risk of severe hepatocellular toxicity |
CONTRAINDICATION Until additional data with the ritonavir boosted inhibitors is available. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
METABOLIZED TYROSINE-KINASE INHIBITORS CLASS CODE: L01XE |
Decrease of the plasma concentrations and of the effectiveness of the tyrosine kinase inhibitor, due to increase of its metabolism by the inducer |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ISONIAZID RxNorm: 6038 ATC: J04AC01 |
Increase of the hepatoxicity of the isoniazid (increase of the formation of toxic metabolites of the isoniazid) |
Precaution for use Clinical and biological monitoring of this classic combination. In case of hepatitis, stop the isoniazid. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
IVABRADINE RxNorm: 77417 ATC: C01EB17 |
Risk of decrease of the effectiveness of the ivabradine, due to increase of its metabolism by the rifampicin |
Precaution for use Clinical monitoring and adjustment of the dosage of the ivabradine during the administration of the two substances together and after the rifampicin is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
KETOCONAZOLE RxNorm: 6135 ATC: D01AC08 G01AF11 J02AB02 |
Decrease of the plasma concentrations and of the effectiveness of the two anti-antibiotics (enzymatic induction by the rifampicin and decrease of the intestinal absorption by the azole antifungal) |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
LEDIPASVIR RxNorm: 1591922 ATC: not found |
Large decrease of the plasma concentrations of ledipasvir due to increase of its hepatic metabolism by the rifampicin |
CONTRAINDICATION |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
LINEZOLIDE RxNorm: 190376 ATC: J01XX08 |
Risk of decrease of the effectiveness of the linezolide due to increase of its hepatic metabolism by the rifampicin. |
Precaution for use Clinical monitoring and possible increase of the dosage of the linezolide during the treatment with the rifampicin. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
METOPROLOL RxNorm: 6918 ATC: C07AB02 |
Decrease of the plasma concentrations and of the effectiveness of the beta blocking agent (increase of its hepatic metabolism) |
Take into account |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
METRONIDAZOLE RxNorm: 6922 ATC: A01AB17 D06BX01 G01AF01 J01XD01 P01AB01 |
Decrease of the plasma concentrations of the metronidazole due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring and possible adjustment of the dosage of metronidazole during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
MIDAZOLAM RxNorm: 6960 ATC: N05CD08 |
Risk of absence of effect of the midazolam, with very large decrease of its plasma concentrations, due to increase of its hepatic metabolism |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
MINERALOCORTICOIDS CLASS CODE: H02AA0 |
Decrease of the plasma concentrations and of the effectiveness of the corticoids due to increase of their hepatic metabolism by the rifampicin; the consequences are particularly great in persons with Addison's disease treated with the hydrocortisone and in cases of organ transplants |
Precaution for use Clinical and biological monitoring; adjustment of the dosage of the corticoids during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
MONTELUKAST RxNorm: 88249 ATC: R03DC03 |
Risk of reduction of the effectiveness of the montelukast due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring and possible adjustment of the dosage of the antiasthmatic during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
MORPHINE RxNorm: 7052 ATC: N02AA01 |
Decrease of the plasma concentrations and of the effectiveness of the morphine and of its active metabolite |
Precaution for use Clinical monitoring and possible adjustment of the dosage of the morphine during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
NEVIRAPINE RxNorm: 53654 ATC: J05AG01 |
Decrease of the plasma concentrations of the nevirapine due to increase of its hepatic metabolism by the rifampicin |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
NIMODIPINE RxNorm: 7426 ATC: C08CA06 |
Decrease of the plasma concentrations of the calcium channel blocker due to increase of its hepatic metabolism |
Not recommended Clinical monitoring and possible adjustment of the dosage of the calcium channel blocker during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
NINTEDANIB RxNorm: 1592737 ACT: L01XE31 |
Decrease of the plasma concentrations of the nintedanib due to decrease of its absorption by the rifampicin |
Precaution for use Clinical monitoring during the administration of these medications together. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
PERAMPANEL RxNorm: 1356552 ATC: N03AX22 |
Large decrease (up to two thirds) of the concentrations of perampanel |
Take into account |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
PIOGLITAZONE RxNorm: 33738 ATC: A10BG03 |
Decrease of the plasma concentrations of the glitazone due to increase of its metabolism by the rifampicin |
Precaution for use Clinical and biological monitoring; adjustment of the dosage of the glitazone during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
POSACONAZOLE RxNorm: 282446 ATC: J02AC04 |
Decrease of the plasma concentrations and of the effectiveness of the two antibiotics (enzymatic induction by the rifampicin and decrease of the intestinal absorption by the azole antifungal) |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
PRAZIQUANTEL RxNorm: 8628 ATC: P02BA01 |
Very large decrease of the plasma concentrations of the praziquantal, with risk of failure of the treatment, due to increase of the hepatic metabolism of the praziquantel by the rifampicin |
CONTRAINDICATION |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
PROPAFENONE RxNorm: 8754 ATC: C01BC03 |
Decrease of the plasma concentrations of the propafanone, due to increase of its hepatic metabolism by the rifampicin |
Precautions for use Clinical monitoring and EKG. If there is reason for it, adjustment of the dosage of the propafenone during the administration of the two substances together and after the rifampicin is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
PROPRANOLOL RxNorm: 8787 ATC: C07AA05 |
Decrease of the plasma concentrations and of the effectiveness of the beta-blocking agent (increase of its hepatic metabolism) |
Take into account |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
QUETIAPINE RxNorm: 51272 ATC: N05AH04 |
Very large decrease of the plasma concentrations of quetiapine due to increase of its hepatic metabolism by the inducer, with risk of ineffectiveness |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
QUININE RxNorm: 9071 ATC: P01BC01 |
Risk of loss of the effectiveness of the quinine due to increase of its hepatic metabolism by the inducer |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
RALTEGRAVIR RxNorm: 719872 ATC: J05AX08 |
Decrease of the concentrations of the raltegravir by the rifampicin |
Not recommended If administering these together cannot be avoided, doubling the dose of raltegravir can be considered |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
RANOLAZINE RxNorm: 35829 ATC: C01EB18 |
Very large decrease of the concentrations of ranolazine. |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
RIVAROXABAN RxNorm: 1114195 ATC: B01AF01 |
Decrease of the plasma concentrations of rivaroxaban, with risk of decrease of the therapeutic effect |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
SIMVASTATIN RxNorm: 36567 ATC: C10AA01 |
Very large decrease of the plasma concentrations of simvastatin, due to increase of its hepatic metabolism by the rifampicin. |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
TELAPREVIR Rx Norm: 1102261 ATC: J05AE11 |
Very large decrease of the concentrations of telaprevir |
CONTRAINDICATION |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
TELITHROMYCIN RxNorm: 274786 ATC: J01FA15 |
Very large decrease of the plasma concentrations of the telithromycin, with risk of failure of the antibiotic treatment, due to increase of the hepatic metabolism of the telithromycin by the rifampicin. |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
Decrease of the plasma concentrations of the tenofovir alafenamide due to decrease of its absorption by the rifampicin |
Not recommended Clinical monitoring during the administration of these medications together and 1 to 2 weeks after the rifampicin is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
TERBINAFINE RxNorm: 37801 ATC: D01AE15 D01BA02 |
Decrease of the plasma concentrations and of the effectiveness of the terbinafine, due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring. If needed, adjustment of the dosage of the terbinafine during the treatment with the rifampicin. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
THEOPHYLLINE (AND, BY EXTRAPOLATION, AMINOPHYLLINE) CLASS CODE: R03DA |
Decrease of the plasma concentrations and of the effectiveness of the theophylline (increase of its metabolism by enzymatic induction) |
Precaution for use Clinical monitoring and, if needed, monitoring of the theophyllinemia. Adjust, if there is reason to, the dosage of the theophylline during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
TIAGABINE RxNorm: 31914 ATC: N03AG06 |
Decrease of the plasma concentrations of the tiagabine due to increase of its hepatic metabolism |
Precaution for use An increase of the dosage of the tiagabine can prove necessary in cases where it is administered with the rifampicin. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
TICAGRELOR RxNorm: 1116632 ATC: B01AC24 |
Large decrease of the plasma concentrations of ticagrelor due to increase of its hepatic metabolism by the rifampicin, with risk of decrease of the therapeutic effect. |
Not recommended |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ULIPRISTAL RxNorm: 1005921 ATC: G03AD02 |
Risk of decrease of the effect of the ulipristal, due to increase of its hepatic metabolism by the inducer. |
Not recommended Choose a therapeutic alternative that is little or not at all metabolized. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
Risk of onset of convulsive crises, due to increase of the hepatic metabolism of the valproate by the rifampicin |
Precaution for use Clinical and biological monitoring, and possible adjustment of the dosage of the anticonvulsant during the treatment with the rifampicin and after it is stopped. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
VITAMIN D CLASS CODE: A11CC |
Decrease of the concentrations of vitamin D more marked than in the absence of the treatment with the rifampicin |
Precaution for use Concentration dosage of vitamin D and supplementation if necessary. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
VORICONAZOLE RxNorm: 121243 ATC: J02AC03 |
Large decrease of the plasma concentrations of the voriconazole with risk of loss of effectiveness, due to increase of its hepatic metabolism by the rifampicin |
CONTRAINDICATION |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ZOLPIDEM RxNorm: 39993 ACT: N05CF02 |
Decrease of the plasma concentrations and of the effectiveness of the zolpidem due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring. Possibly use another hypnotic. |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
ZOPICLONE RxNorm: 40001 ATC: N05CF01 |
Decrease of the plasma concentrations and of the effectiveness of the zopiclone due to increase of its hepatic metabolism by the rifampicin |
Precaution for use Clinical monitoring. Possibly use another hypnotic. |


Waxtablet Manual
Information and Specifications
Author: |
aescwork<EMAIL_ADDRESS>|
Application Web Site: |
https://github.com/aescwork/waxtablet |
Language: |
Python (versions 2.7, 3) |
Current Version: |
1.0 (as of Wed Aug 16 2017) |
Platforms: |
Microsoft Windows, Linux, Unix |
User Interface: |
Command Line, Web Browser |
Data Persistence: |
sqlite3 (configuration settings and user data) |
Logging: |
None |
Source Code: |
Available for Download: https://github.com/aescwork/waxtablet |
License: |
MIT (see LICENSE on Application Web Site) |
Documentation: |
Documentation and Users Manual available at https://github.com/aescwork/waxtablet/docs |
Introduction
Waxtablet is a terminal or command-line application for creating, reading, updating, deleting and displaying text information. The text information is organized into and stored as Entries which are stored in one or more databases. It was specifically written to serve as a journal program, but it can also be used for documentation, notes or general organization of information.
The text information -- the Entry -- is entered into a plain Hyper Text Markup Language (html) file, called
"input.html
". This file can
be located anywhere on the computer. When the information is done being entered, input.html
can then be
read by waxtablet, the information in the file is parsed and stored in the current Entry database.
waxtablet treats an Entry as a distinct unit-grouping of information. An entry consists of:
- An Entry Number.
- Entry Text.
- Entry Keywords.
- An Entry Date.
- The name of the database (hereafter called the "entry-database") file where the Entry data is stored.
input.html
is used not only for creating a new Entry, but also for modifying existing Entries.
This will be discussed below.
Entries in the current entry-database can be selected according to certain criteria, such as Entry number, date range, text search and more.
Entries can also be updated. For this, they can be selected according to certain criteria as mentioned above. When they are
selected, they are written to input.html
, which can then be modified.
Entries can also be deleted, again according to certain search criteria.
Installation
Preliminaries
In order to use waxtablet, python version 2.6 or higher must be installed.
In order to install the application, the pip package manager must be installed.
Install
- Download the code from github here or use git in the terminal:
git clone https://github.com/aescwork/waxtablet
- Navigate into the
dist
directory. - Linux/Unix users, run:
sudo pip install waxtablet-1.0.tar.gz
(The waxtablet version number you see may be different.) - Windows users, run:
pip install waxtablet-1.0.tar.gz
(The waxtablet version number you see may be different.) - Pip will install waxtablet in the default location for applications which are available to all users.
- Navigate back up a directory and into the
scripts
directory. - Use the install_additional_files.py script to copy over the directories and their files used by waxtablet in your home directory. Run:
Microsoft Windows users should see thepython install_additional_files.py
waxtablet
directory in theirUsers\<username>
directory. Linux/Unix users should see the.waxtablet
directory by navigating to their home directory and runningls -al
- Test the waxtablet installation. Run:
The Settings Main Menu should now display.waxtablet -M
Getting Started
Once installation is complete, all of the directories and files needed for waxtablet are created and installed:
wtab_usr_data
, containing:wtab_app
html-templates
, containing:default.html
entry-databases
io_files
, containing:input.html
output.html
default.css
media_queries.css
Before using the application, create an entry-database where Entries will be stored. Use the following command:
waxtablet -N my-new-entry-database
Next, set this newly created entry-database to the current database:
waxtablet -C my-new-entry-database
waxtablet is now ready to create, read, update and delete Entries. (See below for how to do these.)
Settings Main Menu
After installation has been completed the Settings Main Menu can be used to review and change certain settings:
- The full (absolute) path to the directory where the html templates are stored.
- The full (absolute) path to the directory where the entry databases are stored.
html-templates
, containing:default.html
entry-databases
io_files
, containing:input.html
output.html
default.css
media_queries.css
- The full (absolute) path to the directory where the html templates are stored.
- The full (absolute) path to the directory where the entry databases are stored.
- Current html template used for displaying entries.
- The full (absolute) path to the directory to and creation of the input.html and output.html files.
- The current entry database
- Delete one or more html templates.
- Delete one or more entry databases
- Automatically delete Entries if merged with another Entry during an update.
- Set to display fail and success messages on after executions are completed.
Getting Started
Upon installing this application, all of the directories and files needed for waxtablet are created and installed:
Before using the application, create an entry-database where Entries will be stored. Use the following command:
waxtablet -N my-new-entry-database
Next, set this newly created entry-database to the current database:
waxtablet -C my-new-entry-database
waxtablet is now ready to create, read, update and delete Entries. (See below for how to do these.)
Settings Main Menu
After installation has been completed the Settings Main Menu can be used to review and change certain settings:
The command to start the Settings Main Menu is:
waxtablet -M
Directories for Waxtablet Files
If the Settings Main Menu is used to change a path to a (new) directory, that directory needs to be created first in the filesystem.
Combining Options and Arguments in a Single Command
Generally, different options can be combined together which execute different functions of the application. The following example sets a new entry-database to use, displays all the keywords in the current entry-database and create a new Entry in the current entry-database:
waxtablet -N "personal" -l -v c
However, Updating, Reading and Deleting Entries must be done with separate commands. The following example attempts to first retrieve Entries for display by searching for keywords, then Update Entries by group and then Delete some Entries by group:
waxtablet -v r -e "python computers mobile" -v u -g "1 2 5 7" -v d -g "3 4 9 11"
This won't work. The only thing the above command will do is retrieve the Entries for display and then exit. The Update and Delete functions won't be executed. This is because once a Read, Update or Delete Entries function is called, the action is executed and the application then immediately exits.
The above commands would each need to be run separately:
waxtablet -v r -e "python computers mobile"
waxtablet -v u -g "1 2 5 7"
waxtablet -v d -g "3 4 9 11"
In any case, It is recommended that Reading, Updating and Deleting Entries by run as commands which execute those functions only and don't call any other options. While the application can otherwise handle calls to multiple options, calling too many options together in a single command might result in unexpected behavior.
Creating Entries
To create an entry, first make sure that the input.html
file is set up properly so waxtablet can parse the
Entry text. This is most easily done by first closing the input.html
file, then entering the following command:
waxtablet -T
This outputs or writes the basic template to input.html
which provides markup for structuring the Entry data.
The template looks like this:

Once this is in input.html
, open this file and add the Entry text.
The first 5 lines contain only html comments (the lines with the exclamation mark). The only line which needs to be filled out
by the user is the KEYWORDS:
line. After the "KEYWORDS:", enter any keywords or topic-words for this Entry, like so:

waxtablet will parse these and put them in the current entry-database for this entry. Keywords must be separated ONLY by a single space. Do not separate keywords with commas, dashes or any other character. If a keyword is to actually consist of two words, use a dash or any other text character between the two words.
Leave the other comment lines there, and leave them alone.
Below the comment lines are html tags. The tags shown above are for paragraphs (

).
If you don't know html, just put all of the words you write between one or more sets of the paragraph tags like so:

This is a paragraph. This is a sentence of a paragraph. Here is another sentence
in this paragraph.

This is a sentence of another paragraph. We are now working on our
second sentence of the second paragraph.

All of the text information for the Entry must be placed below the
comment line.
Any other text in valid html markup -- such as divs, sections, lists, tables, etc -- may of course also be added.
When all the text has been entered, close the input.html
and enter the following at the prompt:
waxtablet -v c
This will make waxtablet read the information from input.html
into an Entry in the current database. Other relevant
information indicated by the comment lines in above.
Reading Entries
Retrieving (or Reading) Entries involves reading the Entry information for one or more Entries from the current entry-database.
The particular way in which Entries are targetted for selection is explained here. The search criteria which apply for retrieving Entries also apply to Deleting and Updating Entries.
Each command described below for reading Entries involves using the -v
option followed by a single letter argument
r
(for "read") followed by one of several other option letters which specify how to select Entries.
Read Commands
Select all of the Entries in the current entry-database:
waxtablet -v r -a
Target a range of Entries based on Entry Number. Put the two numbers in quotes, separated by a single space. The below demonstrates retrieving Entries whose numbers are 2 through 12.
waxtablet -v r -n "2 12"
Target a range of Entries based on Entry Date. Put the two dates in quotes, separated by a single space. The dates must be in the format YYYY-MM-DD. Example, search all Entries whose dates are from March 7, 2017 to June 12 2017:
waxtablet -v r -n "2017-03-07 2017-06-12"
Target the first number of Entries (by Entry Number). Optionally specify a number. Example, get the first 7:
waxtablet -v r -j 7
...or just pass the option to get the default number (5):
waxtablet -v r -j
Target the last number of Entries (by Entry Number). Optionally specify a number. Example, get the first 7:
waxtablet -v r -t 7
...or just pass the option to get the default number (5):
waxtablet -v r -t
Target Entries which have certain keywords. List all keywords together surrounded by quotes, each separated by a single space:
waxtablet -e "python text html computer-application command-line"
Target Entries which have a specific date. Dates must be formatted like YYYY-MM-DD:
waxtablet -f "2017-03-07"
Target Entries which have a certain value for a date-member, that is year, month or day:
Get all Entries with a specific year:
waxtablet -m "year 2017"
Get all Entries with a specific month:
waxtablet -m "month 03"
Get all Entries with a specific day (date):
waxtablet -m "day 17"
Target Entries which have certain words in the text:
waxtablet -s "python application text parse"
Target Entries by one or more Entry numbers:
(Get Entries with number 1, 4, 8, 11, 13, 21)
waxtablet -g "1 4 8 11 13 21"
The targetting of Entries also allows a strict query
, which stipulates that all Entries must have each search
value which are passed in as an argument to options which involve searching for more than one value.
For example, the line above which demonstrates a search for certain keywords will return Entries which have one or more
of any of the keywords passed in. Including the strict query
option, however, makes waxtablet return only
those Entries which have all of the passed-in keywords.
This example below demonstrates. It passes the r
argument to the -v
option, which retrieves
Entries from the database, the -e
option followed by a list of words means to search for Entries with the
keywords which follow it, and the -q
option specifies that only Entries with all of the passed-in
keywords should be retrieved:
waxtablet -q -v r -e "python text html computer-application command-line"
Note that, as shown above, the -q
option must be passed-in the same command with the other options and arguments to
specify the strict search.
Deleting Entries
Deleting Entries involves deleting the Entry information for one or more Entries from the current entry-database.
The syntax described above for reading Entries also works for deleting them. The -v d
option and argument are used
instead.
Below are two examples to demonstrate.
Target all of the Entries in the current entry-database for deletion.
waxtablet -v d -a
Target a range of Entries based on Entry Number for deletion. Put the two numbers in quotes, separated by a single space. The below demonstrates retrieving Entries whose numbers are 2 through 12.
waxtablet -v d -n "2 12"
... and so on.
Note that the two examples above are the same as the first two examples demonstrating reading Entries. The only difference
is the argument used to the -v
option.
Important note
While it is possible to use the syntax for targetting Entries to delete multiple Entries, the safest way to delete Entries is
one at a time. This can be done with the -g
option, as with reading Entries above. For example, to delete one Entry
whose Entry Number is 3:
waxtablet -v d -g 3
In the case of multiple deletions, it is more laborious but also more safe to delete one Entry at a time in this manner.
The next safest way to delete multiple Entries is to use -g
with multiple Entry numbers:
waxtablet -v d -g "3 4 5 9"
Remember: once you delete it, it is for all intents and purposes, gone.
Updating Entries
Updating Entries involves Reading the Entry information for one or more Entries from the current entry-database. The Entries
are printed to input.html
, where the details of them can be modified. When the desired modifications are
completed, the input.html
file should be closed, and waxtablet is called again at the prompt to parse the
Entry information, after which it is updated in the current entry-database.
The syntax described above for reading and Deleting Entries also works for selecting them for update. The -v d
option and argument are used instead.
Below are two examples to demonstrate.
It is possible to update Entry Keywords, Entry Text, or both. waxtablet will update these depending on the particular setting
used for this in the wtab_app
database, where the applications configuration settings are stored. The default
setting is to update both Entry Keywords and Entry Text. Setting it to either Entry Keywords or
Entry Text will cause waxtablet to actually execute the update of the one or the other only, not both. To set this behavior,
use the following commands:
Set waxtablet to update only Entry Keywords:
waxtablet -i "keywords"
Set waxtablet to update only Entry Text:
waxtablet -i "text"
Set waxtablet to update both Entry Keywords and Entry Text:
waxtablet -i "text_and_keywords"
The default setting is to update Entry Text and Entry Keywords.
The syntax for selecting Entries for update is otherwise as above;
Target all of the Entries in the current entry-database for updating.
waxtablet -v u -a
Target a range of Entries based on Entry Number for deletion. Put the two numbers in quotes, separated by a single space. The below demonstrates retrieving Entries whose numbers are 2 through 12.
waxtablet -v u -n "2 12"
... and so on.
Next, open input.html
and modify the Entry Keywords and Entry Text as desired. When done, close this file.
After this, commit the changes made in input.html
with this command:
waxtablet -U
The above will update all of the Entries modified in input.html
.
Merging Entries With An Update
It is possible to merge two or more updates into one by modifying input.html
. When this is done, waxtablet can
optionally delete the old Entry or Entries that were merged into the remaining Entry.
For example, imagine that after running the command:
waxtablet -v u -g "1 2 3"
three Entries have been written to input.html
for updating.
The input.html
would look like this:

This is a paragraph for an Entry about web development.

This is another paragraph: talk about html, css, markup, etc.

Here is a paragraph.

This paragraph talks about php. Php is a language for generating dynamic web content.

Here we discuss apache. Apache is a web server. Php can run on the apache web server.

In this paragraph we can put it all together: Linux, Apache, MySQL and PHP. That's the "lamp" stack.

This paragraph talks about python. Use it to write desktop applications.

This paragraph talks about tkinter. tkinter is a gui library for python.

Finally, we talk about logging. Yes, Python has its own support to handle applications writing to their log files.

What we could do is merge two or more Entries together; In this example, let's merge Entries 1 and 2. More specifically, we will merge Entry 2 into Entry 1.
To do this, modify input.html
so it now looks like this:

This is a paragraph for an Entry about web development.

This is another paragraph: talk about html, css, markup, etc.

Here is a paragraph.

This paragraph talks about php. Php is a language for generating dynamic web content.

Here we discuss apache. Apache is a web server. Php can run on the apache web server.

In this paragraph we can put it all together: Linux, Apache, MySQL and PHP. That's the "lamp" stack.

This paragraph talks about python. Use it to write desktop applications.

This paragraph talks about tkinter. tkinter is a gui library for python.

Finally, we talk about logging. Yes, Python has its own support to handle applications writing to their log files.

In the above example, Entry 2 is gone, and Entry 1 has the keywords and paragraphs from Entry 2. (Note: Leave the Entry Date alone: if you modify it, the modification won't be updated in the entry-database.) These two Entries have now been merged together as Entry Number 1.
Now close input.html
if it is open in a text editor.
In order to effect this change in the entry-database, waxtablet must be set to automatically merge updates in the database. Run the command:
waxtablet -A
Then run:
waxtablet -U
To update the entry-database. This will update Entry 1 to have the Entry Text and Entry Keywords from Entry 2, and it will delete Entry 2. Now the database will have only Entry 1, 3... etc.
Displaying Entries
Entries are displayed using html. Waxtablet uses two html files for this: output.html
and an html file used as a
template for the actual markup structure of the display. That is, the markup which formats the
presentation or appearance is all in the template. The template markup along with the information in the Entries is written to
output.html
. When this process is complete, output.html
is then opened (typically in a browser)
for display.
So once all of the markup and Entries have been written to output.html
, just open it in your browser by entering the
full path to output.html
in the browser bar or navigating the browser to the file's location in the
html-templates
directory.
The templates are stored in the html-templates
directory. Waxtablet initially includes a default template (along with
two .css files), but any other templates can also be added to the html-templates
directory and selected for use in display.
Styling the html in the template
Naturally, .css (and javascript) files can also be used with each template. Just remember to include them with <link>
tags in the template's html.
The Entries themselves are written to the output.html
file surrounded by markup.

Working with html templates
In order to select an html template to format the display, bring up the Settings Main Menu:
waxtablet -M
and select the option to "Set the current html template to be used for displaying entries". All templates in the
html-templates
are displayed.
(NOTE: Do not place any files in html-templates
other than actual templates. Waxtablet displays templates for the
above selection based on what files it finds in the html-templates
directory that have a .html
extension in their filenames, and does not discriminate among them.)
To add a template to html-templates
, simply place the following comment-line wherever in the markup that
the Entry information is to be added:

(You can see an example of this by looking at the default.html
template in html-templates
.) Then
copy or move the file manually to the html-templates
directory.
The location of the html-templates
is placed in a default location when waxtablet is installed, but it can be moved
elsewhere. This can be done by first moving the html-templates
where you want it to go.
Using the Main Settings Menu, select option 1, and enter the full or absolute path to the new location of the directory.
On Microsoft Windows, an absolute path to the directory's location looks like:
C:\Users\username\Documents\html-templates
On Linux or Unix/Macintosh, an absolute path to the directory's location looks like:
/home/username/Documents/html-templates
Additional Options (Optional Arguments)
-q ( --strict-query) |
"Target only entries whose specified columns have all corresponding search values. Use this
option in the same command which selects Entries for display. |
-w ( --delete-keywords) |
Delete the keywords which match the words passed in as an argument following this option
from the keywords table and all entries. |
-l ( --display-keywords) |
Display all keywords for the current entry database in the terminal. |
-A ( --auto-delete) |
If two or more entries are written to the input.html file for an update
and two or more are then merged, delete the entry or entries which were merged into the other entry. |
-N ( --new-entry-db) |
Create a new Entry database. Ex. -N my-new-entry-database. |
-C ( --change-to-entry-db) |
Change to a another Entry database. Ex. -C my-other-database. |
-D ( --delete-entry-db) |
Delete an Entry database. Ex. -D my-new-entry-database. |
-S ( --show-all-entry-dbs) |
Show All entry-databases. |
-P ( --change-template) |
Change to a new html template for displaying the entry contents.
(The template will written to output.html.) |
-L ( --show-all-templates) |
Show all html templates. |
-R ( --delete-template) |
Delete an html template. |
-M ( --settings-main-menu) |
Show a menu to set/initialize the values for settings
in the application database. |
-T ( --input-template) |
Outputs (writes) basic information about how to
structure and use the input.html file for creating entries to the input.html file. |
waxtablet -v d -g "3 4 5 9"
waxtablet -


World Wide Web Access Statistics
File Accesses by Domain for IUSOCS
February 1999
There were no accesses from this domain.
There were no accesses from this domain.
Requests Received During Summary Period 416
Bytes Transmitted During Summary Period 1094374
Average Requests Received Daily 42
Average Bytes Transmitted Daily 109437
Requests Received During Summary Period 25
Bytes Transmitted During Summary Period 37717
Average Requests Received Daily 5
Average Bytes Transmitted Daily 7543
Requests Received During Summary Period 35
Bytes Transmitted During Summary Period 81562
Average Requests Received Daily 4
Average Bytes Transmitted Daily 10195
There were no accesses from this domain.
Requests Received During Summary Period 1
Bytes Transmitted During Summary Period 596
Average Requests Received Daily 1
Average Bytes Transmitted Daily 596


Police officer receives Starbucks coffee cup with 'PIG' printed on label
TULSA, Oklahoma -- A quick trip to get coffee has left a police chief with a bad taste in his mouth.
An officer stopped by a Starbucks to grab five cups of coffee for his dispatchers working on Thanksgiving.
When the officer picked up the coffee, the cups had the word "Pig" printed on side of them.
After seeing that, the officer called his chief. The chief called the store and asked to speak to the manager who offered to reprint the cups if the officer brought them back.
This wasn't the apology the chief was looking for, so he took to social media where the photo went viral.
As for the chief, it seems his officers wont be stopping by the store again.
KTUL reached out to the Starbucks, and the manager on duty referred them to corporate and said the incident was being looked into.


{% extends "layout.html" %} {% block page_title %} Take your driving test {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} Learn to drive Take your driving test {{formData | safe}} Take your driving test Take your driving test To take your driving test: have provisional licence number read how driving tests work take test What to do if you don’t pass your driving test. {% endblock %}
To take your driving test:
What to do if you don’t pass your driving test.


|
AutoYams
Automatic Yams with OpenCV dice detection
|
Advanced video page. More...
#include <VideoPage.h>
Public Member Functions | |
| VideoPage (AutoYams *app, VideoCaptureWindow *ref) | |
| Default constructor. More... | |
| virtual void | handle () override |
| Method called when page is selected in pagination. More... | |
| virtual bool | pressOkButton () override |
| Method called when 'OK' button is pressed. More... | |
| virtual void | selectDevice (int index) override |
| Method called when a new device is selected. More... | |
| virtual void | selectConfig (int index) override |
| Method called when a new config is selected. More... | |
| virtual void | changeBrightness (int value) override |
| Method called when brightness is changed. More... | |
| virtual void | changeContrast (int value) override |
| Method called when contrast is changed. More... | |
| virtual void | changeFramerate (int value) override |
| Method called when framerate is changed. More... | |
| virtual void | changeZoom (double value) override |
| Method called when zoom/scale is changed. More... | |
| Public Member Functions inherited from AdvancedPage | |
| AdvancedPage (int id, AutoYams *app, VideoCaptureWindow *ref) | |
| Default constructor. More... | |
| Public Member Functions inherited from Page | |
| Page (int id, AutoYams *ref=0) | |
| Default constructor. More... | |
Private Attributes | |
| VideoOpenCV * | videoDisplay |
Additional Inherited Members | |
| Protected Attributes inherited from AdvancedPage | |
| VideoCaptureWindow * | wnd |
| Protected Attributes inherited from Page | |
| AutoYams * | app |
| int | ID |
Advanced video page.
Page used in Video Window to display video capture & algorithm output.
| VideoPage::VideoPage | ( | AutoYams * | app, |
| VideoCaptureWindow * | ref | ||
| ) |
Default constructor.
| app | Reference of the current application window |
| ref | Reference of the current Video Window of Application |
Specifiy required data to build reference for the page connection to UI & window event elements (slots & signals).
|
overridevirtual |
Method called when brightness is changed.
| value | Value of the new brightness from original Slider |
Called in Video Window when brightness is modified through center-right Brightness Slider in Video Page.
Implements AdvancedPage.
|
overridevirtual |
Method called when contrast is changed.
| value | Value of the new contrast from original Slider |
Called in Video Window when contrast is modified through center-right Contrast Slider in Video Page.
Implements AdvancedPage.
|
overridevirtual |
Method called when framerate is changed.
| value | Value of the new framerate from original Slider |
Called in Video Window when framerate is modified through center-right Framerate Slider in Video Page.
Implements AdvancedPage.
|
overridevirtual |
Method called when zoom/scale is changed.
| value | Value of the new zoom/scale from original Slider |
Called in Video Window when zoom/scale is modified through center-right Zoom/scale Slider in Video Page.
Implements AdvancedPage.
|
overridevirtual |
|
overridevirtual |
Method called when 'OK' button is pressed.
Called in Video Window when the 'OK' button is pressed in Video Page.
Implements AdvancedPage.
|
overridevirtual |
Method called when a new config is selected.
| index | Index of newly selected config in original Combobox |
Called in Video Window when a new config is selected in the center-right Config Combobox on Video Page.
Implements AdvancedPage.
|
overridevirtual |
Method called when a new device is selected.
| index | Index of newly selected device in original Combobox |
Called in Video Window when a new device is selected in the center-right Device Combobox on Video Page.
Implements AdvancedPage.
|
private |
Video display of OpenCV video capture object in main application.


Retrieve information about the API itself and inspect the current context. The returned dictionary can be used with getdns_context_config() directly to configure another context with precisely these settings.
- Parameters
-
| context | The context from which to get the information |
- Returns
- A getdns_dict containing the following name/value pairs:
version_string
(a bindata) represents the version string for this version of the DNS API.
implementation_string
(a bindata) is a string showing which implementation of the getdns API this is. In our implementation this will always be set to "https://getdnsapi.net"
- resolution_type (an int) is the type of resolver that the API is acting as in this context: GETDNS_RESOLUTION_RECURSING or GETDNS_RESOLUTION_STUB.
- all_context (a dict) with names for all the other settings in context.


top
|
up
|
prev
|
next
FunctionTypeKeyEqual Struct
Definition at line
254
of
Type.hpp
Member Functions
size_t
operator()
(
const
FunctionTypeKey
& left,
const
FunctionTypeKey
& right)
const
Member Function Details
operator() Member Function
size_t cmsxi::FunctionTypeKeyEqual::operator()(
const
FunctionTypeKey
& left,
const
FunctionTypeKey
& right)
const
Definition at line
234
of
Type.cpp
:
235
{
236
if
(
left
.
returnType
!=
right
.
returnType
)
return
false
;
237
return
left
.
paramTypes
==
right
.
paramTypes
;
238
}
Declaration at line
256
of
Type.hpp
top
|
up
|
prev
|
next


---
layout: post
title: Oak and Canarywood Desk
categories:
- Woodworking
tags: []
comments: []
---
Matt and I just finished our greatest woodworking project yet! We designed and built a desk for Liz out of red oak with canarywood highlights. It took us about ten days, working most of each day. We started with a CAD design.
Here's what we came up with. The design featured a large edge joined top with two canarywood stripes in it. Showing through the top were through tenons from inward tapered legs. We also included a pair of small drawers, housed in a case which was suspended from the top with sliding dovetails. We hid the ends of the dovetail slot by gluing the top in two stages.
We used a long piece of canarywood for accents all over. Thanks to Bruce and Eileen for the canarywood board!
We loaded up the car with tools stored at Mom and Dad's and headed to my house in Providence, where we set up a temporary shop in my landlord's garage. On the way, we snapped up a $50 router table off of a Craigslist in White Plains.
First, we laid out the top from 5/4 red oak boards and canary wood ripped to 5/4 slices.
We edge joined the front part of the top, leaving the last board out for now. Once the glue had dried, we cut two long dovetail slots which ended a few inches from the front edge. These slots would receive the drawer case and would be hidden once we edge joined the final board.
Next, we built the case for the drawers. Our design called for miter joints on the bottom corners and sliding dovetails on top. A shelf to support the second drawer would slide into a dado. We ripped 1x12 red oak boards to size, and cut the sliding dovetail into the top edge using our new router table. We made the dado and miters on the table saw. We also cut 2" oak boards to length for the legs and tapered them on the table saw.
Our design had these dovetails running with the grain of the wood, and we started thinking about their durability. A few experiments showed them to be spookily fragile. Paranoid, we drilled holes and knocked in some dowels. Not sure if this even makes a difference. Maybe it made them weaker.
We strengthened each miter joint with a pair of dovetailed splines. A router table jig helped us cut slots into the corners. We used canarywood for the splines themselves.
After the glue dried, we cut off the excess and planed the splines flat. We were very happy with the results.
We slid the drawer case into the slots in the top and edge joined the last board in place.
We cut through mortises into the top and tenons into the legs. The ends of the tenons would be prominent, so we drove two canarywood wedges into each. We also put together the stretchers with mortises and tenons.
Drawer time. We used our router based planer to thin a bunch of 1" thick stock to 3/8". This was unpleasant and didn't work very well. We had trouble finding good ways to clamp the work, and the thickness varied as a result.
We designed the drawers with the same basic construction as the drawer case. Sliding dovetails on one end, splined miter joints on the other.
We hand carved some nice drawer pulls, too. Used the band saw to rough them out and then chisels and sand paper to get the shape we wanted. The pulls connected to the drawers with one large dovetail each.
We planed the top flat and sanded everything.
Looks pretty good, if you ask me!
We finished the project with several coats of danish oil.


Register
First Name:
Last Name:
Male:
Female:
Other:
Email:
Password:
Birthday:
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
I agree to the terms and conditions:


BIOGRAPHICAL SKETCH OF DAVID
WILSON LATTA (1 Jul 1881 - 25 Jul 1956)
One of the
schools David attended was Fox
Hollow. We have his report card signed by his brother Tom, the teacher, from
1894. Dave also passed an examination and received a Teacher's Certificate valid for one year in
Monroe County, dated November 5, 1898. All of his brothers got a teaching
certificate in their late teens. He would have been 17 years
old. He then went by bicycle to Cornell in Ithaca, New York.
He found work with bees to pay for his living expenses.
David
strongly in the two-party system, and because of that, he would insist on
voting even if it were a moot point. Apparently, he had strong political
feelings even as a youth. Two of his editorials were published in the Saturday
Evening Post.
Editor,
Saturday Evening Post:
Shall we
give up our legends? Emphatically we shall. Legends are untruths nine times out
of ten,---merely fiction. We shall soon get into fiction altogether. Legendism
and sensationalism are one and the same. Mr. Skinner says in his editorial,
history and legend are the same, only legend is much broader. Webster defines
legend as "a remarkable story" and history as "a record."
What a difference between the two! At any rate, there are enough truths in this
life to believe without going to extremes. Honor heroes, but do not make gods
of them. Do not hold them up as such for posterity. While we live in this life
all men are equal. In conclusion, embellish facts if you will, but do not make
legends out of them.
Miltonsburg,
Ohio
D. W. L.
Editor,
Saturday Evening Post:
The able
treatment of the editorial, Our New Midway Plaisance, has caused it to be read with
more than passing interest. It seems to me that there is danger of becoming an
Imperial Republic. If there is not, how can we face expansion? Can we hold out
the Monroe Doctrine, on the one hand, and say to the Powers, Keep off the
grass, and on the other deliberately trample upon it ourselves? No. There is
danger of becoming vain because of our achievements. Look at the tone of our
ultimatums to Spain and note the Imperialistic command that is implied. It
seems that almost every man of office who has any influence whatever is trying
to climb on some person's shoulders and then push him down as he springs
upward, that he can give Imperialistic commands. For instance, look at
General Miles' military bill. It provides for a Lieutenant-General. Who will that
Lieutenant-General be? Look at the International Bimetalism scheme and see what
a snare that was. The time seems fast approaching when the officials at
Washington will lay off their cloaks and, swaggering round in their seeming
importance, say to other nations, "You shall."
Miltonsburg,
Ohio
D. W. L.
In 1913 David
began working with the Kuehn-Wilson Electric company for $3.50, a day and he
worked ten hours every day. He was working for this company on the Timken
building in Canton when he fell two stories and broke his jaw. That
newspaper article said "the accident was due to the breaking of the
concrete pole near the place where the cross arms were attached."
Another article with headlines LEAPS IN AUTO, BEATS FOREMAN OF ELECTRIC CO,
related: "D.W. Latta Thinks Effort to Break Strike Caused the
Attack." "THREATS WERE MADE," Foreman Thinks Man Who
Injured Him was Hired Thug." After Kuehn-Wilson he worked as an
electrician for Hilscher-Clark.
In June 1918 he
was hired by the Hercules Motors Company. Later he became a designing
engineer. In 1944 he received the Ordinance
Distinguished Consulting Service Award for his contributions to the war
technology. Although he officially lived in Canton, Ohio, his office was
in Chicago. He took the train back home on available weekends when
all five kids would go over for Saturday dinner.
Another
Article: PATENTS OBTAINED
Frease
& Bishop, patent attorneys, list these patents as granted during the week:
. . . and Hercules Motors Corp. assignee of David Wilson Latta, patent on
governor controlled compression ignition.
A feature
of many newspapers are notes of important things that happened 100 years ago,
50 years ago, etc. In the 1981 Canton Repository was this note: "25 YEARS
AGO---David W. Latta,
vice president of the Hercules Motors Corp. since 1947 and
associated with the firm for 38 years, died unexpectedly in his home at 2200 Broad
Ave. NW. He was 75.'
Provided by Betty Latta Kitchen
e-mail: Betty Kitchen
Click here for the Short-Cut Table of Contents


Analyses callables' parameters and detects when parameters (passed by value) are only written to, never read.
This usage is pointless because the assignments are local to the callable.