Vincent John Mooney

37 papers A* 1A 5C 5Misc 5Journal 5Unranked 16
YearRankTypeTitle / Venue / Authors
2025 Misc conf
CSR
Arman Allahverdi, Vincent John Mooney
2025 conf
SMACD
Ceyda Körpe, Kareem Ahmad, Ece Öztürk, Kanishk Tihaiya, Ryanh Tran, Hyunsoo Yang, Junbin Yang, Günhan Dündar, Vincent John Mooney, Kemal Ozanoglu
2025 Misc conf
CSR
Kareem Ahmad, Ece Öztürk, Ceyda Körpe, Hyunsoo Yang, Junbin Yang, Kanishk Tihaiya, Ryanh Tran, Günhan Dündar, Vincent John Mooney, Kemal Ozanoglu
2024 conf
MECO
Olivia Blanchette, Gabrielle Calderon, Andrew Hamby, Jing Liu, Valeriia Rubanova, Vincent John Mooney
2023 A* conf
DAC
Kevin Hutto, Vincent John Mooney
2023 conf
MECO
Yiming Tan, Aditya Diwakar, Jason Jagielo, Vincent John Mooney
2022 conf
ISGT
Shuva Paul, Yu-Cheng Chen, Santiago Grijalva, Vincent John Mooney
2022 conf
MECO
Kevin Hutto, Santiago Grijalva, Vincent John Mooney
2021 conf
MobiHealth
Beren Semiz, Mehmet Emre Gursoy, Md Mobashir Hasan Shandhi, Lara Orlandic, Vincent John Mooney, Omer T. Inan
2021 J jnl
Cryptogr.
Yu-Cheng Chen, Vincent John Mooney, Santiago Grijalva
2019 C conf
VLSI-SoC
Yu-Cheng Chen, Vincent John Mooney, Santiago Grijalva
2018 Misc conf
CODES+ISSS
Taimour Wehbe, Vincent John Mooney, David C. Keezer
2018 J jnl
J. Hardw. Syst. Secur.
Taimour Wehbe, Vincent John Mooney, Omer T. Inan, David C. Keezer
2017 conf
HOST
Taimour Wehbe, Vincent John Mooney, Abdul Qadir Javaid, Omer T. Inan
2017 conf
FPGAworld
Taimour Wehbe, Vincent John Mooney, David C. Keezer, Omer T. Inan, Abdul Qadir Javaid
2015 conf
WESS
Taimour Wehbe, Vincent John Mooney, David C. Keezer, Nicholas B. Parham
2014 conf
WESS
Aderinola Gbade-Alabi, David C. Keezer, Vincent John Mooney, Axel York Poschmann, Marc Stöttinger, Kshitij Divekar
2014 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Charvi Dhoot, Lap-Pui Chau, Shubhajit Roy Chowdhury, Vincent John Mooney
2013 J jnl
ACM Trans. Embed. Comput. Syst.
Christoph M. Kirsch, Vincent John Mooney
2012 conf
ARCS
Andreas Heinig, Vincent John Mooney, Florian Schmoll, Peter Marwedel, Krishna V. Palem, Michael Engel
2011 A conf
ISLPED
Zvi M. Kedem, Vincent John Mooney, Kirthi Krishna Muntimadugu, Krishna V. Palem
2011 C conf
VLSI-SoC
Charvi Dhoot, Vincent John Mooney, Shubhajit Roy Chowdhury, Lap-Pui Chau
2011 conf
ISVLSI
Charvi Dhoot, Vincent John Mooney, Lap-Pui Chau, Shubhajit Roy Chowdhury
2011 conf
ISVLSI
Aman Gupta, Satyam Mandavalli, Vincent John Mooney, Keck Voon Ling, Arindam Basu, Henry Johan, Budianto Tandianus
2011 Misc ed.
CASES
Rajesh K. Gupta, Vincent John Mooney
2010 Misc conf
CASES
Zvi M. Kedem, Vincent John Mooney, Kirthi Krishna Muntimadugu, Krishna V. Palem, Avani Devarasetty, Phani Deepak Parasuramuni
2006 J jnl
IEEE Trans. Parallel Distributed Syst.
Jaehwan John Lee, Vincent John Mooney
2006 C conf
VLSI-SoC
Se Hun Kim, Vincent John Mooney
2004 C conf
SCOPES
Yudong Tan, Vincent John Mooney
2003 conf
Engineering of Reconfigurable Systems and Algorithms
Pramote Kuacharoen, Mohamed Shalan, Vincent John Mooney
2003 A conf
DATE
Kyeong Keol Ryu, Vincent John Mooney
2003 A conf
RTSS
Bilge Saglam Akgul, Vincent John Mooney, Henrik Thane, Pramote Kuacharoen
2003 A conf
DATE
Vincent John Mooney
2003 A conf
DATE
Pramote Kuacharoen, Vincent John Mooney, Vijay K. Madisetti
2002 conf
LCTES-SCOPES
Krishna V. Palem, Rodric M. Rabbah, Vincent John Mooney, Pinar Korkmaz, Kiran Puttaswamy
2002 conf
PASTE
Tankut Akgul, Vincent John Mooney
2001 C conf
DSD
Pramote Kuacharoen, Tankut Akgul, Vincent John Mooney, Vijay K. Madisetti
redb/extractors/decompiler/bninja/similarity/minhashcustom.py
← Index redb/extractors/decompiler/bninja/similarity/minhashcustom.py python
import numpy as np
import mmh3

class MinHashCustom:
    """
    DTO for an actual MinHash
    <minhash>: a binary sequence of packed int8/32 values
    <minhash_int>: the equivalent representation of <minhash> but as list of int8/32
    """

    _HASH_MAX = 0xFFFFFFFF
    _MINHASH_BITS = 32

    def getSignatureEntrySize(self):
        return 1 if self.MINHASH_BITS <= 8 else 4

    def __init__(self, function_addr=None, minhash_bytes=None, minhash_signature=None, minhash_bits=32):
        self.minhash = b""
        self.minhash_int = []
        if minhash_bits:
            self._MINHASH_BITS = minhash_bits
        if minhash_bytes and minhash_signature:
            raise ValueError("Can use only one keyword argument")
        if minhash_bytes:
            if self._MINHASH_BITS <= 8:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint8)
            else:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint32)
            self.setMinHash(minhash_signature)
        elif minhash_signature:
            self.setMinHash(minhash_signature)

        self.shingler_composition = {}
        self.function_addr = function_addr

    def hasMinHash(self):
        return len(self.minhash) > 0

    def getMinHash(self):
        return self.minhash

    def getMinHashInt(self):
        return self.minhash_int

    def setMinHash(self, minhash_signature):
        self.minhash_int = [i % 2 ** self._MINHASH_BITS for i in minhash_signature]
        if self._MINHASH_BITS <= 8:
            self.minhash = np.array(self.minhash_int, dtype=np.uint8).tobytes()
        else:
            self.minhash = np.array(self.minhash_int, dtype=np.uint32).tobytes()

    def getComposition(self):
        return self.shingler_composition

    def scoreAgainst(self, other):
        return self.calculateMinHashScore(self.minhash, other.minhash, minhash_bits=self._MINHASH_BITS)

    @staticmethod
    def getHashMax():
        return MinHashCustom._HASH_MAX

    @staticmethod
    def hashData(data, seed) -> int:
        if isinstance(data, (str, bytes, bytearray)):
            return mmh3.hash(data, seed) & MinHashCustom._HASH_MAX
        elif isinstance(data, (list, tuple)):
            to_hash = "|".join(str(elem) for elem in data)
            return mmh3.hash(to_hash, seed) & MinHashCustom._HASH_MAX
        else:
            raise NotImplementedError(
                f"Type not supported for hashData: {type(data).__name__}"
            )

    @staticmethod
    def calculateMinHashScore(first, second, minhash_bits=32):
        if minhash_bits <= 8:
            first_np = np.frombuffer(first, dtype=np.uint8)
            second_np = np.frombuffer(second, dtype=np.uint8)
        else:
            first_np = np.frombuffer(first, dtype=np.uint32)
            second_np = np.frombuffer(second, dtype=np.uint32)
        return 100.0 * sum(first_np == second_np) / len(first_np)

    @staticmethod
    def calculateMinHashIntScore(first, second):
        score = 0
        num_hashes = len(first)
        if num_hashes:
            for index, part in enumerate(first):
                score += 1 if part == second[index] else 0
            return 100.0 * score / num_hashes
        return 0.0

    @property
    def MINHASH_BITS(self):
        return self._MINHASH_BITS