]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/ng_assembly/num/exadecim.ma
mod change (-x)
[helm.git] / helm / software / matita / contribs / ng_assembly / num / exadecim.ma
old mode 100755 (executable)
new mode 100644 (file)
index 07c1946..1951578
@@ -688,6 +688,13 @@ ndefinition setMSB_ex ≝
  | x8 ⇒ x8 | x9 ⇒ x9 | xA ⇒ xA | xB ⇒ xB
  | xC ⇒ xC | xD ⇒ xD | xE ⇒ xE | xF ⇒ xF ].
 
+ndefinition clrMSB_ex ≝
+λe:exadecim.match e with
+ [ x0 ⇒ x0 | x1 ⇒ x1 | x2 ⇒ x2 | x3 ⇒ x3
+ | x4 ⇒ x4 | x5 ⇒ x5 | x6 ⇒ x6 | x7 ⇒ x7
+ | x8 ⇒ x0 | x9 ⇒ x1 | xA ⇒ x2 | xB ⇒ x3
+ | xC ⇒ x4 | xD ⇒ x5 | xE ⇒ x6 | xF ⇒ x7 ].
+
 (* operatore Least Significant Bit *)
 ndefinition getLSB_ex ≝
 λe:exadecim.match e with
@@ -703,6 +710,13 @@ ndefinition setLSB_ex ≝
  | x8 ⇒ x9 | x9 ⇒ x9 | xA ⇒ xB | xB ⇒ xB
  | xC ⇒ xD | xD ⇒ xD | xE ⇒ xF | xF ⇒ xF ].
 
+ndefinition clrLSB_ex ≝
+λe:exadecim.match e with
+ [ x0 ⇒ x0 | x1 ⇒ x0 | x2 ⇒ x2 | x3 ⇒ x2
+ | x4 ⇒ x4 | x5 ⇒ x4 | x6 ⇒ x6 | x7 ⇒ x6
+ | x8 ⇒ x8 | x9 ⇒ x8 | xA ⇒ xA | xB ⇒ xA
+ | xC ⇒ xC | xD ⇒ xC | xE ⇒ xE | xF ⇒ xE ].
+
 (* operatore rotazione destra con carry *)
 ndefinition rcr_ex ≝
 λc:bool.λe:exadecim.match c with
@@ -1392,6 +1406,11 @@ ndefinition compl_ex ≝
  | x8 ⇒ x8 | x9 ⇒ x7 | xA ⇒ x6 | xB ⇒ x5
  | xC ⇒ x4 | xD ⇒ x3 | xE ⇒ x2 | xF ⇒ x1 ].
 
+(* operatore abs *)
+ndefinition abs_ex ≝
+λe:exadecim.match getMSB_ex e with
+ [ true ⇒ compl_ex e | false ⇒ e ].
+
 (* operatore x in [inf,sup] o in sup],[inf *)
 ndefinition inrange_ex ≝
 λx,inf,sup:exadecim.