<commit_before>package com.quantarray.skylark.measure

/*
 * Skylark
 *
 * © 2012-2016, Quantarray
 * http://skylark.io
 */
package object untyped
{
  val * = untyped.ProductMeasure
  val / = untyped.RatioMeasure
  val ^ = untyped.ExponentialMeasure

  type Conversion[From, To] = com.quantarray.skylark.measure.Conversion[From, To]

  val Conversion = com.quantarray.skylark.measure.Conversion

  type ⤇[From, To] = Conversion[From, To]

  val ⤇ = Conversion

  type ConvertException = com.quantarray.skylark.measure.ConvertException

  type CanAdd[A1, A2] = com.quantarray.skylark.measure.CanAdd[A1, A2]

  type CanConvert[From, To] = com.quantarray.skylark.measure.CanConvert[From, To]

  type Converter[From, To] = com.quantarray.skylark.measure.Converter[From, To]

  // TODO: Generate via macro

  /**
    * Dimensionless.
    */
  final val Unit: untyped.Measure = com.quantarray.skylark.measure.Unit

  val bp: untyped.Measure = com.quantarray.skylark.measure.bp

  /**
    * Time.
    */
  val s: untyped.Measure = com.quantarray.skylark.measure.s

  /**
    * Mass.
    */
  val g: untyped.Measure = com.quantarray.skylark.measure.g

  val kg: untyped.Measure = com.quantarray.skylark.measure.kg

  val mt: untyped.Measure = com.quantarray.skylark.measure.mt

  /**
    * Volume.
    */
  val bbl: untyped.Measure = com.quantarray.skylark.measure.bbl

  val gal: untyped.Measure = com.quantarray.skylark.measure.gal

  /**
    * Length.
    */
  val m: untyped.Measure = com.quantarray.skylark.measure.m

  /**
    * Currency.
    */
  val USD: untyped.Measure = com.quantarray.skylark.measure.USD

  object arithmetic
  {

    trait SafeArithmeticImplicits
    {
      implicit def exponentialCanExponentiate = new CanExponentiate[untyped.Measure, untyped.Measure]
      {
        override def pow(base: untyped.Measure, exponent: Double): untyped.Measure = ExponentialMeasure(base, exponent)
      }

      implicit def productCanMultiply = new CanMultiply[untyped.Measure, untyped.Measure, untyped.Measure]
      {
        override def times(multiplicand: untyped.Measure, multiplier: untyped.Measure): untyped.Measure = ProductMeasure(multiplicand, multiplier)
      }<commit_msg>Additional units.<commit_after>package com.quantarray.skylark.measure

/*
 * Skylark
 *
 * © 2012-2016, Quantarray
 * http://skylark.io
 */
package object untyped
{
  val * = untyped.ProductMeasure
  val / = untyped.RatioMeasure
  val ^ = untyped.ExponentialMeasure

  type Conversion[From, To] = com.quantarray.skylark.measure.Conversion[From, To]

  val Conversion = com.quantarray.skylark.measure.Conversion

  type ⤇[From, To] = Conversion[From, To]

  val ⤇ = Conversion

  type ConvertException = com.quantarray.skylark.measure.ConvertException

  type CanAdd[A1, A2] = com.quantarray.skylark.measure.CanAdd[A1, A2]

  type CanConvert[From, To] = com.quantarray.skylark.measure.CanConvert[From, To]

  type Converter[From, To] = com.quantarray.skylark.measure.Converter[From, To]

  // TODO: Generate via macro

  /**
    * Dimensionless.
    */
  type DimensionlessMeasure = com.quantarray.skylark.measure.DimensionlessMeasure

  final val Unit: untyped.Measure = com.quantarray.skylark.measure.Unit

  val percent: untyped.Measure = com.quantarray.skylark.measure.percent

  val bp: untyped.Measure = com.quantarray.skylark.measure.bp

  /**
    * Time.
    */
  val s: untyped.Measure = com.quantarray.skylark.measure.s
  val min: untyped.Measure = com.quantarray.skylark.measure.min
  val mins: untyped.Measure = com.quantarray.skylark.measure.mins
  val h: untyped.Measure = com.quantarray.skylark.measure.h
  val hour: untyped.Measure = com.quantarray.skylark.measure.hour
  val day: untyped.Measure = com.quantarray.skylark.measure.day
  val days: untyped.Measure = com.quantarray.skylark.measure.days
  val year365: untyped.Measure = com.quantarray.skylark.measure.year365
  val years: untyped.Measure = com.quantarray.skylark.measure.years

  /**
    * Mass.
    */
  val g: untyped.Measure = com.quantarray.skylark.measure.g

  val kg: untyped.Measure = com.quantarray.skylark.measure.kg

  val mt: untyped.Measure = com.quantarray.skylark.measure.mt

  /**
    * Volume.
    */
  val bbl: untyped.Measure = com.quantarray.skylark.measure.bbl

  val gal: untyped.Measure = com.quantarray.skylark.measure.gal

  /**
    * Energy.
    */
  val J: untyped.Measure = com.quantarray.skylark.measure.J
  val kJ: untyped.Measure = com.quantarray.skylark.measure.kJ
  val MJ: untyped.Measure = com.quantarray.skylark.measure.MJ
  val GJ: untyped.Measure = com.quantarray.skylark.measure.GJ

  val MMBtu: untyped.Measure = com.quantarray.skylark.measure.MMBtu

  /**
    * Length.
    */
  val m: untyped.Measure = com.quantarray.skylark.measure.m

  /**
    * Currency.
    */
  val CAD: untyped.Measure = com.quantarray.skylark.measure.CAD

  val USD: untyped.Measure = com.quantarray.skylark.measure.USD

  val USC: untyped.Measure = com.quantarray.skylark.measure.USC

  object arithmetic
  {

    trait SafeArithmeticImplicits
    {
      implicit def exponentialCanExponentiate = new CanExponentiate[untyped.Measure, untyped.Measure]
      {
        override def pow(base: untyped.Measure, exponent: Double): untyped.Measure = ExponentialMeasure(base, exponent)
      }

      implicit def productCanMultiply = new CanMultiply[untyped.Measure, untyped.Measure, untyped.Measure]
      {
        override def times(multiplicand: untyped.Measure, multiplier: untyped.Measure): untyped.Measure = ProductMeasure(multiplicand, multiplier)
      }
{'fraction_non_alphanumeric': 0.11447629349197765, 'fraction_numerical': 0.005408328826392645, 'mean_word_length': 3.459807073954984, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3754851', 'n_tokens_mistral': 2011, 'n_tokens_neox': 1914, 'n_words': 341}