Carlos Azevedo

13 papers A 4Journal 4Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Rodrigo Serra, Carlos Azevedo, André Silva, Kevin Alcedo, Quentin Rouxel, Peter So, Alejandro Suárez, Alin Albu-Schäffer, Pedro U. Lima
2025 J jnl
IEEE Robotics Autom. Mag.
Alejandro Suárez, Rainer Kartmann, Daniel Leidner, Luca Rossini, Johann Huber, Carlos Azevedo, Quentin Rouxel, Marko Bjelonic, Antonio González-Morgado, Christian R. G. Dreher, Peter Schmaus, Arturo Laurenzi, François Hélénon, Rodrigo Serra, Jean-Baptiste Mouret, Lorenz Wellhausen, Vicente Perez-Sanchez, Jianfeng Gao, Adrian Simon Bauer, Alessio De Luca, Mouad Abrini, Rui Bettencourt, Olivier Rochel, Joonho Lee, Pablo Viana, Christoph Pohl, Nesrine Batti, Diego Vedelago, Vamsi Krishna Guda, Alexander Reske, Carlos Álvarez-Cía, Fabian Reister, Werner Friedl, Corrado Burchielli, Aline Baudry, Fabian Peller-Konrad, Thomas Gumpert, Luca Muratore, Philippe Gauthier, Franziska Krebs, Sebastian Jung, Lorenzo Baccelliere, Hippolyte Watrelot, André Meixner, Anne Köpken, Mohamed Chetouani, Pascal Weiner, Florian Lay, Felix Hundhausen, Anne E. Reichert, Noémie Jaquier, Florian Schmidt, Marco Sewtz, Freek Stulp, Lioba Suchenwirth, Rudolph Triebel, Xuwei Wu, Begoña C. Arrue, Rebecca Schedl-Warpup, Marco Hutter, Serena Ivaldi, Pedro U. Lima, Stéphane Doncieux, Nikos G. Tsagarakis, Tamim Asfour, Aníbal Ollero, Alin Albu-Schäffer
2025 J jnl
Robotics Auton. Syst.
Carlos Azevedo, Pedro U. Lima
2025 A conf
IROS
Afonso Certo, Bruno Martins, Carlos Azevedo, Pedro U. Lima
2020 A conf
AAMAS
Carlos Azevedo
2020 A conf
AAMAS
Carlos Azevedo, Bruno Lacerda, Nick Hawes, Pedro U. Lima
2020 A conf
IROS
Carlos Azevedo, Bruno Lacerda, Nick Hawes, Pedro U. Lima
2020 conf
ONTOBRAS
Gustavo Britto, Fabiano Ruy, Carlos Azevedo
2019 conf
ICARSC
Carlos Azevedo, Pedro U. Lima
2019 J jnl
Künstliche Intell.
Pedro U. Lima, Carlos Azevedo, Emilia Brzozowska, João Cartucho, Tiago J. Dias, João Gonçalves, Mithun Kinarullathil, Guilherme Lawless, Oscar Lima, Rute Luz, Pedro Miraldo, Enrico Piazza, Miguel Silva, Tiago Veiga, Rodrigo Ventura
2018 conf
SBRC Companion
Carlos Azevedo, Emidio P. Neto, Charles H. F. dos Santos, Felipe Sampaio Dantas da Silva, Augusto José Venâncio Neto
2017 conf
PPT@PERSUASIVE
Carlos Azevedo, Cristina Chesta, José Coelho, Davide Dimola, Carlos Duarte, Marco Manca, Jan Egil Nordvik, Fabio Paternò, Anne-Marthe Sanders, Carmen Santoro
2003 conf
WOB
Carlos Azevedo, Alexandre Plastino, Ana Tereza Ribeiro de Vasconcelos
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