scala.collection.immutable.BitSet Scala Examples
The following examples show how to use scala.collection.immutable.BitSet.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: Signature.scala From spark-neighbors with MIT License | 5 votes |
package com.github.karlhigley.spark.neighbors.lsh import scala.collection.immutable.BitSet import org.apache.spark.mllib.linalg.SparseVector private[neighbors] sealed abstract class HashTableEntry[+S <: Signature[_]] { val id: Long val table: Int val signature: S val point: SparseVector def sigElements: Array[Int] } private[neighbors] final case class BitHashTableEntry( id: Long, table: Int, signature: BitSignature, point: SparseVector ) extends HashTableEntry[BitSignature] { def sigElements: Array[Int] = { signature.elements.toArray } } private[neighbors] final case class IntHashTableEntry( id: Long, table: Int, signature: IntSignature, point: SparseVector ) extends HashTableEntry[IntSignature] { def sigElements: Array[Int] = { signature.elements } }
Example 2
Source File: BitSamplingFunction.scala From spark-neighbors with MIT License | 5 votes |
package com.github.karlhigley.spark.neighbors.lsh import java.util.Random import scala.collection.immutable.BitSet import org.apache.spark.mllib.linalg.SparseVector def generate( originalDim: Int, signatureLength: Int, random: Random = new Random ): BitSamplingFunction = { val indices = Array.fill(signatureLength) { random.nextInt(originalDim) } new BitSamplingFunction(indices) } }
Example 3
Source File: BitSetReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import scala.collection.immutable.BitSet class BitSetReading extends BitSetBenchmark { @Benchmark def avSystemGenCodec(): BitSet = JsonStringInput.read[BitSet](new String(jsonBytes, UTF_8)) @Benchmark def circe(): BitSet = decode[BitSet](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jsoniterScala(): BitSet = readFromArray[BitSet](jsonBytes) @Benchmark def playJson(): BitSet = Json.parse(jsonBytes).as[BitSet](bitSetFormat) }
Example 4
Source File: CirceEncodersDecoders.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.time.Instant import java.util.Base64 import com.github.plokhotnyuk.jsoniter_scala.benchmark.BitMask.toBitMask import io.circe.Decoder._ import io.circe.Encoder._ import io.circe._ import io.circe.generic.extras._ import io.circe.generic.extras.decoding.UnwrappedDecoder import io.circe.generic.extras.encoding.UnwrappedEncoder import io.circe.generic.extras.semiauto._ import scala.collection.immutable.{BitSet, IntMap} import scala.collection.mutable import scala.util.Try object CirceEncodersDecoders { val printer: Printer = Printer.noSpaces.copy(dropNullValues = true, reuseWriters = true, predictSize = true) val prettyPrinter: Printer = Printer.spaces2.copy(dropNullValues = true, reuseWriters = true, predictSize = true) val escapingPrinter: Printer = printer.copy(escapeNonAscii = true) implicit val config: Configuration = Configuration.default.withDefaults.withDiscriminator("type") implicit val adtC3c: Codec[ADTBase] = deriveConfiguredCodec[ADTBase] implicit val anyValsC3c: Codec[AnyVals] = { implicit def valueClassEncoder[A <: AnyVal : UnwrappedEncoder]: Encoder[A] = implicitly implicit def valueClassDecoder[A <: AnyVal : UnwrappedDecoder]: Decoder[A] = implicitly deriveConfiguredCodec[AnyVals] } val (base64D5r: Decoder[Array[Byte]], base64E5r: Encoder[Array[Byte]]) = (Decoder.decodeString.map[Array[Byte]](Base64.getDecoder.decode), Encoder.encodeString.contramap[Array[Byte]](Base64.getEncoder.encodeToString)) implicit val bidRequestC3c: Codec[OpenRTB.BidRequest] = { import io.circe.generic.extras.auto._ deriveConfiguredCodec[OpenRTB.BidRequest] } implicit val bigIntE5r: Encoder[BigInt] = encodeJsonNumber .contramap(x => JsonNumber.fromDecimalStringUnsafe(new java.math.BigDecimal(x.bigInteger).toPlainString)) implicit val (bitSetD5r: Decoder[BitSet], bitSetE5r: Encoder[BitSet]) = (Decoder.decodeArray[Int].map(arr => BitSet.fromBitMaskNoCopy(toBitMask(arr, Int.MaxValue ))), Encoder.encodeSeq[Int].contramapArray((m: mutable.BitSet) => m.toVector)) implicit val distanceMatrixC3c: Codec[GoogleMapsAPI.DistanceMatrix] = { import io.circe.generic.auto._ deriveConfiguredCodec[GoogleMapsAPI.DistanceMatrix] } implicit val gitHubActionsAPIC3c: Codec[GitHubActionsAPI.Response] = { implicit val c1: Codec[GitHubActionsAPI.Artifact] = Codec.forProduct9("id", "node_id", "name", "size_in_bytes", "url", "archive_download_url", "expired", "created_at", "expires_at") { (id: Long, node_id: String, name: String, size_in_bytes: Long, url: String, archive_download_url: String, expired: String, created_at: Instant, expires_at: Instant) => GitHubActionsAPI.Artifact(id, node_id, name, size_in_bytes, url, archive_download_url, expired.toBoolean, created_at, expires_at) } { a => (a.id, a.node_id, a.name, a.size_in_bytes, a.url, a.archive_download_url, a.expired.toString, a.created_at, a.expires_at) } deriveConfiguredCodec[GitHubActionsAPI.Response] } implicit val extractFieldsC3c: Codec[ExtractFields] = deriveConfiguredCodec[ExtractFields] implicit val geoJSONC3c: Codec[GeoJSON.GeoJSON] = { implicit val c1: Codec[GeoJSON.SimpleGeometry] = deriveConfiguredCodec[GeoJSON.SimpleGeometry] implicit val c2: Codec[GeoJSON.Geometry] = deriveConfiguredCodec[GeoJSON.Geometry] implicit val c3: Codec[GeoJSON.SimpleGeoJSON] = deriveConfiguredCodec[GeoJSON.SimpleGeoJSON] deriveConfiguredCodec[GeoJSON.GeoJSON] } implicit val (intMapD5r: Decoder[IntMap[Boolean]], intMapE5r: Encoder[IntMap[Boolean]]) = (Decoder.decodeMap[Int, Boolean].map(_.foldLeft(IntMap.empty[Boolean])((m, p) => m.updated(p._1, p._2))), Encoder.encodeMap[Int, Boolean].contramapObject((m: IntMap[Boolean]) => m)) implicit val (longMapD5r: Decoder[mutable.LongMap[Boolean]], longMapE5r: Encoder[mutable.LongMap[Boolean]]) = (Decoder.decodeMap[Long, Boolean].map(_.foldLeft(new mutable.LongMap[Boolean])((m, p) => m += (p._1, p._2))), Encoder.encodeMapLike[Long, Boolean, mutable.Map].contramapObject((m: mutable.LongMap[Boolean]) => m)) implicit val missingRequiredFieldsC3c: Codec[MissingRequiredFields] = deriveConfiguredCodec[MissingRequiredFields] implicit val nestedStructsC3c: Codec[NestedStructs] = deriveConfiguredCodec[NestedStructs] implicit val (suitD5r: Decoder[Suit], suitE5r: Encoder[Suit]) = (decodeString.emap(s => Try(Suit.valueOf(s)).fold[Either[String, Suit]](_ => Left("Suit"), Right.apply)), encodeString.contramap[Suit](_.name)) implicit val suitADTC3c: Codec[SuitADT] = deriveEnumerationCodec[SuitADT] implicit val (suitEnumDecoder: Decoder[SuitEnum.Value], suitEnumEncoder: Encoder[SuitEnum.Value]) = (decodeEnumeration(SuitEnum), encodeEnumeration(SuitEnum)) implicit val primitivesC3c: Codec[Primitives] = deriveConfiguredCodec[Primitives] implicit val tweetC3c: Codec[TwitterAPI.Tweet] = { import io.circe.generic.auto._ deriveConfiguredCodec[TwitterAPI.Tweet] } }
Example 5
Source File: BitSetBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.immutable.BitSet abstract class BitSetBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: BitSet = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = BitSet(0 until size: _*) jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes("UTF-8") preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 6
Source File: SimpleConsensusCaller.scala From fgbio with MIT License | 5 votes |
package com.fulcrumgenomics.umi import com.fulcrumgenomics.FgBioDef.forloop import com.fulcrumgenomics.util.NumericTypes.{LogProbability, PhredScore} import scala.collection.immutable.BitSet def callConsensus(sequences: Seq[String]): String = { require(sequences.nonEmpty, "Can't call consensus on an empty set of sequences!") require(sequences.forall(_.length == sequences.head.length), "Sequences must all have the same length") val buffer = new StringBuilder val firstRead = sequences.head val readLength = firstRead.length val sequencesLength = sequences.length forloop (from=0, until=readLength) { i => this.consensusBuilder.reset() var nonDna = 0 sequences.foreach { sequence => val char = sequence.charAt(i) if (!this.DnaBasesBitSet.contains(char.toInt)) { nonDna += 1 // verify that all non-DNA bases are the same character require(firstRead.charAt(i) == char, s"Sequences must have character '${firstRead.charAt(i)}' at position $i, found '$char'") } else this.consensusBuilder.add(char.toByte, pError=this.pError, pTruth=this.pTruth) } if (nonDna == 0) buffer.append(this.consensusBuilder.call()._1.toChar) else if (nonDna == sequencesLength) buffer.append(firstRead.charAt(i)) // NB: we have previously verified they are all the same character else throw new IllegalStateException(s"Sequences contained a mix of DNA and non-DNA characters at offset $i: $sequences") } buffer.toString() } }
Example 7
Source File: ClassLoadManager.scala From Argus-SAF with Apache License 2.0 | 5 votes |
package org.argus.jawa.core import org.argus.jawa.core.util._ import scala.collection.immutable.BitSet private var classes: IList[JawaClass] = ilistEmpty def reset(): Unit = classes = ilistEmpty protected def addClass(clazz: JawaClass): Unit = { this.synchronized( this.classes :+= clazz ) } def getClassPosition(clazz: JawaClass): Int = { if(!this.classes.contains(clazz)) addClass(clazz) this.classes.indexOf(clazz) } def loadClass(clazz: JawaClass): BitSet = { val position = getClassPosition(clazz) if(position < 0){ throw new RuntimeException("Negative position:" + position) } BitSet(position) } def loadClass(clazz: JawaClass, bitset: BitSet): BitSet = { require(!isLoaded(clazz, bitset)) val position = getClassPosition(clazz) if(position < 0){ throw new RuntimeException("Negative position:" + position) } bitset + position } def isLoaded(clazz: JawaClass, bitset: BitSet): Boolean = { val position = getClassPosition(clazz) bitset(position) } }
Example 8
Source File: SignRandomProjectionLSH.scala From lexrank-summarizer with MIT License | 5 votes |
package io.github.karlhigley.lexrank import scala.collection.immutable.BitSet import scala.collection.mutable.ArrayBuffer import scala.util.Random import scala.util.hashing.MurmurHash3 import org.apache.spark.mllib.linalg.SparseVector import org.apache.spark.Logging class SignRandomProjectionLSH(poolSize: Int = 10000) extends Serializable with Logging { val pool = SignRandomProjectionLSH.generatePool(poolSize) def computeSignature(vector: SparseVector, length: Int): BitSet = { val buf = ArrayBuffer.empty[Int] val elements = vector.indices.zip(vector.values) for (bit <- 1 to length) { val components = elements.map(e => { val hash = MurmurHash3.productHash((bit, e._1)) val poolIndex = ((hash % poolSize) + poolSize) % poolSize val result = e._2 * pool(poolIndex) result }) val dotProduct = components.reduce(_ + _) if (dotProduct > 0) { buf += bit } } BitSet(buf.toArray:_*) } } object SignRandomProjectionLSH { def signatureSet(length: Int): Set[BitSet] = { BitSet(1 to length:_*).subsets.toSet } def estimateCosine(a: BitSet, b: BitSet, length: Int): Double = { val hammingDistance = (a^b).size math.cos(hammingDistance.toDouble/length.toDouble*math.Pi) } private def generatePool(size: Int): Array[Double] = { val rand = new Random() val buf = ArrayBuffer.fill[Double](size)(rand.nextGaussian) buf.toArray } }
Example 9
Source File: FlagsSerializer.scala From spark-bam with Apache License 2.0 | 5 votes |
package org.hammerlab.bam.check.full.error import com.esotericsoftware.kryo.io.{ Input, Output } import com.esotericsoftware.kryo.{ Kryo, Serializer } import scala.collection.immutable.BitSet class FlagsSerializer extends Serializer[Flags] { override def read(kryo: Kryo, input: Input, clz: Class[Flags]): Flags = { kryo .readClassAndObject(input) .asInstanceOf[(BitSet, Int)] } override def write(kryo: Kryo, output: Output, flags: Flags): Unit = kryo.writeClassAndObject(output, flags: (BitSet, Int)) }
Example 10
Source File: FlagsTest.scala From spark-bam with Apache License 2.0 | 5 votes |
package org.hammerlab.bam.check.full import hammerlab.show._ import org.hammerlab.bam.check.full.error.Flags import org.hammerlab.test.Suite import scala.collection.immutable.BitSet class FlagsTest extends Suite { test("show") { Flags.fromBitSet( BitSet( 1, 2, 3 ) → 0 ) .show should be( "negativeReadIdx,tooLargeReadIdx,negativeReadPos" ) } }