Prosecution Insights
Last updated: April 19, 2026
Application No. 19/041,142

Indexing Elements in a Source Array

Final Rejection §103
Filed
Jan 30, 2025
Examiner
DORAISWAMY, RANJIT P
Art Unit
2166
Tech Center
2100 — Computer Architecture & Software
Assignee
Imagination Technologies Limited
OA Round
2 (Final)
64%
Grant Probability
Moderate
3-4
OA Rounds
3y 9m
To Grant
99%
With Interview

Examiner Intelligence

Grants 64% of resolved cases
64%
Career Allow Rate
112 granted / 176 resolved
+8.6% vs TC avg
Strong +44% interview lift
Without
With
+43.6%
Interview Lift
resolved cases with interview
Typical timeline
3y 9m
Avg Prosecution
26 currently pending
Career history
202
Total Applications
across all art units

Statute-Specific Performance

§101
11.8%
-28.2% vs TC avg
§103
54.5%
+14.5% vs TC avg
§102
16.6%
-23.4% vs TC avg
§112
8.3%
-31.7% vs TC avg
Black line = Tech Center average estimate • Based on career data from 176 resolved cases

Office Action

§103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Amendment Applicant’s Amendments, filed January 1, 2026, has been entered. No claims have been amended, and claims 1-20 are currently pending. Response to Arguments Applicant's arguments filed January 2, 2026 have been fully considered but they are not persuasive. Applicant argues that cited prior art Farrugia et al. (Pub. No. US 2009/0307657 A1, hereinafter “Farrugia”) does not teach the claim 1 limitation “the method further comprising gating the retrieved based on the index, to thereby select a data element”, specifically arguing that Farrugia does not teaching gating because the translation function in Farrugia is not a gating function (Remarks pp. 5-7). In response, examiner respectfully submits that, using the broadest reasonable interpretation, the translation function is interpreted as a gating function. The translation function takes as input an index to the first array and translates that index to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. After the translation function is complete, the data is retrieved (Farrugia [0034]). The recited gating function gates “the retrieved elements based on the index, to thereby select a data element”. Both functions control which values are selected based on an index. Applicant argues that Farrugia would not be combined with the teachings of Veeningen (Pub. No. US 2020/0057755 A1, hereinafter “Veeningen”) or Mendel et al. (Pub. No. US 2020/0014404 A1, hereinafter “Mendel”) because rather than modify the teachings of said references, Farrugia’s method would simply be used to obfuscate the data stored by Veeningen or Mendel (Remarks pp. 5-6). In response, examiner respectfully submits that Farrugia is analogous art in the same field of endeavor (see MPEP 2141.01(a)I.) and therefore proper to use in an obviousness rejection. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention. Claims 1, 3, 4, 9, 10, 15, 16, 19 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Veeningen in view of Mendel et al. (Pub. No. US 2020/0014404 A1, hereinafter “Mendel”) in view of Farrugia. Regarding claim 1, Veeningen teaches: generating a plurality of shifted copy arrays based on the source array, each shifted copy array comprising [the] data elements of the source array at a respective shifted position (Veeningen – data retrieval method 800 may be for data-obliviously copying a subarray (i.e. copy array) of a first array (i.e. source array) to a second array (i.e. another copy array) [0181]. Subarray (i.e. copy array) may comprise zero or more subsequent elements of the first array [0126]. Shift checking unit 436 and/or shifting unit 437 may be configured to data-obliviously shift elements of second array 464’ based on second index 444’ such that an element at second index 444’ in the second array after the shifting corresponds to a starting element of the second array before the shifting. The data-obliviously shifting may comprise data-obviously right-shifting elements of second array 464’ by a number of positions corresponding to second index 444’ [0171-0172]. Examiner interprets that the subarray and the second array disclose a plurality of shifted copy arrays.) receiving a plurality of indices for indexing the source array, each index of the plurality of indices indicating a target location in the source array (Veeningen – data retrieval method 800 may comprise performing an element computation for each first element at a first index in the first array (i.e. source array) comprising: selecting (i.e. retrieving) a second index in the second array for the first index in the first array, wherein different second indices are selected for first indices of the first array that differ by less than the length of the subarray [0181-0184].) and for each index of the plurality of indices, retrieving a data element from each of the shifted copy arrays (Veeningen – Algorithm 1 and/or Algorithm 2 are used to compute second array 264 and/or retrieve a target element. Boldfaced variables of the algorithms may correspond to inputs, outputs, and/or witnesses of the verifiable computation and non-boldfaced variables may correspond to constants. In particular, an operation [a=b] is used in Algorithm 1 and/or 2 returning 1 if a sensitive value a is equal to a non-sensitive value b, and 0 otherwise. This operation may be implemented using the zero-equality gate from “Pinocchio: Nearly Practical Verifiable Computation” [0164].) Veeningen does not appear to teach: the data elements the method further comprising gating the retrieved elements based on the index, to thereby select a data element However, Mendel teaches: the data elements (Mendel – the number of elements in the source and target array is identical [0021].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen and Mendel before them, to modify the system of Veeningen with the teachings of Mendel of the data elements. One would have been motivated to make such a modification to copy all the elements from the source array to the target array (Mendel - [0020-0021]). Veeningen modified by Mendel does not appear to teach: the method further comprising gating the retrieved elements based on the index, to thereby select a data element However, Farrugia teaches: the method further comprising gating the retrieved elements based on the index, to thereby select a data element (Farrugia – the plurality of expanded arrays is accessed via an index to the first array (i.e. source array) which is translated to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. Effectively, instead of calling an index in the first array directly, such as NUMBER[5], a programmer uses a function (i.e. gating) which translates the array index to the respective location(s) in the expanded arrays to retrieve the split-up portions of the data, such as “DE_OBFUSCATE_ARRAY(NUMBER, 5)” [0034].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen and Mendel with the teachings of Farrugia of gating the retrieved elements based on the index, to thereby select a data element. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 3, Veeningen modified by Mendel does not appear to teach: comprising gating the retrieved elements based on the index, to thereby generate an interpolated data element However, Farrugia teaches: comprising gating the retrieved elements based on the index, to thereby generate an interpolated data element (Farrugia – the plurality of expanded arrays is accessed via an index to the first array which is translated to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. Effectively, instead of calling an index in the first array directly, such as NUMBER[5], a programmer uses a function (i.e. gating) which translates the array index to the respective location(s) in the expanded arrays to retrieve the split-up portions of the data, such as “DE_OBFUSCATE_ARRAY(NUMBER, 5)” [0034]. Data elements in each of the expanded arrays is arranged or spaced out (i.e. interpolated) such that a data element located at an index I in a respective secondary array is located at an index I*M, wherein M is the respective multiple in an associated expanded array [0026].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Farrugia of gating the retrieved elements based on the index, to thereby generate an interpolated data element. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 4, Veeningen modified by Mendel does not appear to teach: wherein gating the retrieved elements comprises defining a gating coefficient for each of the retrieved elements, wherein the gating coefficients for data elements other than neighbourhood data elements in a finite neighbourhood around the target location are zero However, Farrugia teaches: wherein gating the retrieved elements comprises defining a gating coefficient for each of the retrieved elements, wherein the gating coefficients for data elements other than neighbourhood data elements in a finite neighbourhood around the target location are zero (Farrugia – the plurality of expanded arrays is accessed via an index to the first array which is translated to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. Effectively, instead of calling an index in the first array directly, such as NUMBER[5], a programmer uses a function (i.e. gating) which translates the array index to the respective location(s) in the expanded arrays to retrieve the split-up portions of the data, such as “DE_OBFUSCATE_ARRAY(NUMBER, 5)” [0034]. Data elements in each of the expanded arrays is arranged or spaced out such that a data element located at an index I in a respective secondary array is located at an index I*M, wherein M (i.e. gating coefficient) is the respective multiple in an associated expanded array [0026].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Farrugia of wherein gating the retrieved elements comprises defining a gating coefficient for each of the retrieved elements, wherein the gating coefficients for data elements other than neighbourhood data elements in a finite neighbourhood around the target location are zero. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 9, Veeningen modified by Mendel does not appear to teach: wherein the gating coefficient for at least one of the retrieved data elements is a floating point value However, Farrugia teaches: wherein the gating coefficient for at least one of the retrieved data elements is a floating point value (Farrugia – spacing the data elements with a multiple larger than 1 pads the array with unused storage space (bits) which can be set to an initial value (such as 0, i.e. floating point value), can be allowed to remain in the state it was when the memory allocated by the computer to store the array, can be set to random values, or can be used to store other information [0026].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Farrugia of wherein the gating coefficient for at least one of the retrieved data elements is a floating point value. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 10, Veeningen teaches: wherein the plurality of indices includes floating point indices (Veeningen – data retrieval method 800 may comprise performing an element computation for each first element at a first index in the first array comprising: selecting a second index in the second array for the first index in the first array, wherein different second indices are selected for first indices of the first array that differ by less than the length of the subarray [0181-184]. Examiner interprets that an index value of 0 discloses a floating point indice.) Regarding claim 15, Veeningen teaches: wherein the indices are integer-valued and (Veeningen – data retrieval method 800 may comprise performing an element computation for each first element at a first index in the first array comprising: selecting a second index in the second array for the first index in the first array, wherein different second indices are selected for first indices of the first array that differ by less than the length of the subarray [0181-0184]. See Table 1 in [0137], where integer values are indicated for the indices.) Veeningen modified by Mendel does not appear to teach: wherein, for each index, the gating selects one unique data element and rejects the retrieved data elements originating from other shifted copy arrays However, Farrugia teaches: wherein, for each index, the gating selects one unique data element and rejects the retrieved data elements originating from other shifted copy arrays (Farrugia – the plurality of expanded arrays is accessed via an index to the first array (i.e. source array) which is translated to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. Effectively, instead of calling an index in the first array directly, such as NUMBER[5], a programmer uses a function (i.e. gating) which translates the array index to the respective location(s) in the expanded arrays to retrieve the split-up portions of the data, such as “DE_OBFUSCATE_ARRAY(NUMBER, 5)” [0034].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Farrugia of wherein, for each index, the gating selects one unique data element and rejects the retrieved data elements originating from other shifted copy arrays. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 16, Veeningen teaches: a shift-generator block, configured to generate a plurality of shifted copy arrays based on the source array, each shifted copy array comprising [the] data elements of the source array at a respective shifted position (Veeningen – data retrieval method 800 may be for data-obliviously copying a subarray (i.e. copy array) of a first array (i.e. source array) to a second array (i.e. another copy array) [0181]. Subarray (i.e. copy array) may comprise zero or more subsequent elements of the first array [0126]. Shift checking unit 436 and/or shifting unit 437 may be configured to data-obliviously shift elements of second array 464’ based on second index 444’ such that an element at second index 444’ in the second array after the shifting corresponds to a starting element of the second array before the shifting. The data-obliviously shifting may comprise data-obviously right-shifting elements of second array 464’ by a number of positions corresponding to second index 444’ [0171-0172]. Examiner interprets that the subarray and the second array disclose a plurality of shifted copy arrays.) and an indexing block, configured to: receive a plurality of indices for indexing the source array, each index of the plurality of indices indicating a target position in the source array, (Veeningen – data retrieval method 800 may comprise performing an element computation for each first element at a first index in the first array (i.e. source array) comprising: selecting (i.e. retrieving) a second index in the second array for the first index in the first array, wherein different second indices are selected for first indices of the first array that differ by less than the length of the subarray [0181-0184].) and for each index of the plurality of indices, retrieve a data element from each of the shifted copy arrays (Veeningen – Algorithm 1 and/or Algorithm 2 are used to compute second array 264 and/or retrieve a target element. Boldfaced variables of the algorithms may correspond to inputs, outputs, and/or witnesses of the verifiable computation and non-boldfaced variables may correspond to constants. In particular, an operation [a=b] is used in Algorithm 1 and/or 2 returning 1 if a sensitive value a is equal to a non-sensitive value b, and 0 otherwise. This operation may be implemented using the zero-equality gate from “Pinocchio: Nearly Practical Verifiable Computation” [0164].) Veeningen does not appear to teach: the data elements wherein the indexing block comprises a gating unit, configured to gate the retrieved elements to thereby select a data element However, Mendel teaches: the data elements (Mendel – the number of elements in the source and target array is identical [0021].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen and Mendel before them, to modify the system of Veeningen with the teachings of Mendel of the data elements. One would have been motivated to make such a modification to copy all the elements from the source array to the target array (Mendel - [0020-0021]). Veeningen modified by Mendel does not appear to teach: wherein the indexing block comprises a gating unit, configured to gate the retrieved elements to thereby select a data element However, Farrugia teaches: wherein the indexing block comprises a gating unit, configured to gate the retrieved elements to thereby select a data element (Farrugia – the plurality of expanded arrays is accessed via an index to the first array (i.e. source array) which is translated to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. Effectively, instead of calling an index in the first array directly, such as NUMBER[5], a programmer uses a function (i.e. gating) which translates the array index to the respective location(s) in the expanded arrays to retrieve the split-up portions of the data, such as “DE_OBFUSCATE_ARRAY(NUMBER, 5)” [0034].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen and Mendel with the teachings of Farrugia of gating the retrieved elements based on the index, to thereby select a data element. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 19, Veeningen teaches: generating a number of shifted copy arrays based on the source array, each shifted copy array comprising [the] data elements of the source array at a respective shifted position (Veeningen – data retrieval method 800 may be for data-obliviously copying a subarray (i.e. copy array) of a first array (i.e. source array) to a second array (i.e. another copy array) [0181]. Subarray (i.e. copy array) may comprise zero or more subsequent elements of the first array [0126]. Shift checking unit 436 and/or shifting unit 437 may be configured to data-obliviously shift elements of second array 464’ based on second index 444’ such that an element at second index 444’ in the second array after the shifting corresponds to a starting element of the second array before the shifting. The data-obliviously shifting may comprise data-obviously right-shifting elements of second array 464’ by a number of positions corresponding to second index 444’ [0171-0172]. Examiner interprets that the subarray and the second array disclose a plurality of shifted copy arrays.) receiving a plurality of indices for indexing the source array, each index of the plurality of indices indicating a target location in the source array (Veeningen – data retrieval method 800 may comprise performing an element computation for each first element at a first index in the first array (i.e. source array) comprising: selecting (i.e. retrieving) a second index in the second array for the first index in the first array, wherein different second indices are selected for first indices of the first array that differ by less than the length of the subarray [0181-0184].) and for each index of the plurality of indices, retrieving a data element from each of the shifted copy arrays (Veeningen – Algorithm 1 and/or Algorithm 2 are used to compute second array 264 and/or retrieve a target element. Boldfaced variables of the algorithms may correspond to inputs, outputs, and/or witnesses of the verifiable computation and non-boldfaced variables may correspond to constants. In particular, an operation [a=b] is used in Algorithm 1 and/or 2 returning 1 if a sensitive value a is equal to a non-sensitive value b, and 0 otherwise. This operation may be implemented using the zero-equality gate from “Pinocchio: Nearly Practical Verifiable Computation” [0164].) Veeningen does not appear to teach: the data elements the method further comprising gating the retrieved elements based on the index, to thereby select a data element However, Mendel teaches: the data elements (Mendel – the number of elements in the source and target array is identical [0021].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen and Mendel before them, to modify the system of Veeningen with the teachings of Mendel of the data elements. One would have been motivated to make such a modification to copy all the elements from the source array to the target array (Mendel - [0020-0021]). Veeningen modified by Mendel does not appear to teach: the method further comprising gating the retrieved elements based on the index, to thereby select a data element However, Farrugia teaches: the method further comprising gating the retrieved elements based on the index, to thereby select a data element (Farrugia – the plurality of expanded arrays is accessed via an index to the first array (i.e. source array) which is translated to retrieve data elements stored in the plurality of expanded arrays and/or sub-arrays. Effectively, instead of calling an index in the first array directly, such as NUMBER[5], a programmer uses a function (i.e. gating) which translates the array index to the respective location(s) in the expanded arrays to retrieve the split-up portions of the data, such as “DE_OBFUSCATE_ARRAY(NUMBER, 5)” [0034].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen and Mendel with the teachings of Farrugia of gating the retrieved elements based on the index, to thereby select a data element. One would have been motivated to make such a modification to determine an improved way to store data in a computer (Farrugia - [0005]). Regarding claim 20, claim 20 corresponds to claim 16 and is rejected accordingly. Claims 2, 13, 17 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Veeningen in view of Mendel in view of Farrugia further in view of Laszlo et al. (Pub. No. US 2021/0201107 A1, hereinafter “Laszlo”). Regarding claim 2, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein generating the shifted copy arrays comprises convolving the source array with a set of filter kernels, each filter kernel generating a respective one of the shifted copy arrays However, Laszlo teaches: wherein generating the shifted copy arrays comprises convolving the source array with a set of filter kernels, each filter kernel generating a respective one of the shifted copy arrays (Laszlo – a graph may be represented as a two-dimensional array of numerical values with a number of rows and columns equal to the number of nodes in the graph. The component of the array at position (i,j) may have value 1 if the graph includes an edge pointing from node i to node j, and value 0 otherwise. In one example, as part of generating an output graph, the graph generation engine may apply a convolutional filtering operation specified by a filtering kernel to the array representing the synaptic connectivity graph. The graph generation parameters may specify the components of a matrix defining the filtering kernel. As part of generating the output graph, the graph generation may apply a “shifting” operation to the array representing the synaptic connectivity graph, e.g. such that each the value in each component of the array is translated “left”, “right”, “up”, or “down” [0243].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Laszlo before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Laszlo of wherein generating the shifted copy arrays comprises convolving the source array with a set of filter kernels, each filter kernel generating a respective one of the shifted copy arrays. One would have been motivated to make such a modification to smooth the values in the array (Laszlo - [0135]). Regarding claim 13, Veeningen modified by Mendel and Farrugia does not appear to teach: used in a method of warping an image or feature map based on a motion vector field However, Laszlo teaches: used in a method of warping an image or feature map based on a motion vector field (Laszlo – the student neural network may be configured to process any variety of possible network inputs, e.g. image data, video data, audio data. The student neural network may be configured to generate any of a variety of possible network outputs, e.g. network outputs that are embeddings of the corresponding network inputs. An embedding of a network input may refer to an ordered collection of numerical values (e.g. a vector or matrix of numeral values) representing the network input [0164].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Laszlo before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Laszlo of used in a method of warping an image or feature map based on a motion vector field. One would have been motivated to make such a modification to smooth the values in the array (Laszlo - [0135]). Regarding claim 17, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein the shift-generator block comprises a plurality of digital filters, wherein each digital filter is configured to generate a respective one of the shifted copy arrays, by convolving the source array with a respective filter kernel However, Laszlo teaches: wherein the shift-generator block comprises a plurality of digital filters, wherein each digital filter is configured to generate a respective one of the shifted copy arrays, by convolving the source array with a respective filter kernel (Laszlo – a graph may be represented as a two-dimensional array of numerical values with a number of rows and columns equal to the number of nodes in the graph. The component of the array at position (i,j) may have value 1 if the graph includes an edge pointing from node i to node j, and value 0 otherwise. In one example, as part of generating an output graph, the graph generation engine may apply a convolutional filtering operation specified by a filtering kernel to the array representing the synaptic connectivity graph. The graph generation parameters may specify the components of a matrix defining the filtering kernel. As part of generating the output graph, the graph generation may apply a “shifting” operation to the array representing the synaptic connectivity graph, e.g. such that each the value in each component of the array is translated “left”, “right”, “up”, or “down” [0243].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Laszlo of wherein the shift-generator block comprises a plurality of digital filters, wherein each digital filter is configured to generate a respective one of the shifted copy arrays, by convolving the source array with a respective filter kernel. One would have been motivated to make such a modification to smooth the values in the array (Laszlo - [0135]). Regarding claim 18, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein the processing system is embodied in hardware on an integrated circuit However, Laszlo teaches: wherein the processing system is embodied in hardware on an integrated circuit (Laszlo – a method is performed by one or more data processing apparatus for training a student neural network having a set of student neural network parameters. The method comprises repeatedly performing operations including processing a training input using the student neural network to generate a student neural network output including a respective score for each of multiple classes [0017]. The term “data processing apparatus” refers to data processing hardware and encompasses all kinds of apparatus [0283].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel and Farrugia before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Laszlo of wherein the processing system is embodied in hardware on an integrated circuit. One would have been motivated to make such a modification to smooth the values in the array (Laszlo - [0135]). Claims 5-7 are rejected under 35 U.S.C. 103 as being unpatentable over Veeningen in view of Mendel in view of Farrugia further in view of Xi et al. (Pub. No. US 2020/0342288 A1, hereinafter “Xi”). Regarding claim 5, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein the gating comprises multiplying the retrieved data elements by their respective gating coefficients, and summing the results However, Xi teaches: wherein the gating comprises multiplying the retrieved data elements by their respective gating coefficients, and summing the results (Xi – at step 604 in Fig. 6, a plurality of partial sums is generated, each partial sum comprising the sum of input values of the input matrix that correspond to a common weight value of a set of common weigh values (i.e. gating coefficients) included in the compressed representation. In step 606, a set of products (i.e. multiplying) is generated based on the plurality of partial sums and the set of common weight values. At step 608, an activation result is generated by summing the products of the set of products [0055-0057]. Activation function 1002 is configured to accept a single number based on all inputs, and perform a fixed operation. As known in the art, such operations may comprise, for example, sigmoid, tan h or rectified linear unit operations. Input constant 1004 comprises a constant value typically set to 1, which is then weighted according to bias weight b 1012 allowing activation function 1002 to include a configurable zero crossing point as known in the art [0067].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Xi before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Xi of wherein the gating comprises multiplying the retrieved data elements by their respective gating coefficients, and summing the results. One would have been motivated to make such a modification to provide for greater efficiency in the training of deep neural networks and in the generation of inferences by deep neural networks (Xi - [0006]). Regarding claim 6, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein defining the gating coefficients comprises calculating the gating coefficients, wherein the calculating comprises a linear summation, followed by a nonlinear activation function However, Xi teaches: wherein defining the gating coefficients comprises calculating the gating coefficients, wherein the calculating comprises a linear summation, followed by a nonlinear activation function (Xi – at step 604 in Fig. 6, a plurality of partial sums is generated, each partial sum comprising the sum of input values of the input matrix that correspond to a common weight value of a set of common weigh values included in the compressed representation. In step 606, a set of products is generated based on the plurality of partial sums and the set of common weight values. At step 608, an activation result (i.e. result of an activation function) is generated by summing the products of the set of products [0055-0057]. Activation function 1002 is configured to accept a single number based on all inputs, and perform a fixed operation. As known in the art, such operations may comprise, for example, sigmoid, tan h or rectified linear unit operations. Input constant 1004 comprises a constant value typically set to 1, which is then weighted according to bias weight b 1012 allowing activation function 1002 to include a configurable zero crossing point as known in the art [0067].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Xi before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Xi of wherein defining the gating coefficients comprises calculating the gating coefficients, wherein the calculating comprises a linear summation, followed by a nonlinear activation function. One would have been motivated to make such a modification to provide for greater efficiency in the training of deep neural networks and in the generation of inferences by deep neural networks (Xi - [0006]). Regarding claim 7, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein calculating the gating coefficients comprises, for an index x E R1 of the plurality of indices, in one dimension: a first summation of the form y = x + b, b E Rs, where b = [n, n - 1, ...,0, ..., -n + 1, -n], n = [s-1/2] and S is the number of shifts in the one dimension; defining an activation function, which returns the value input to it, if that input value is between 0 and 1, and otherwise returns 0; a first operation of the activation function, with the input (y + 1), giving an output y1; a second operation of the activation function, with the input (y), giving an output y2; and a second summation, operating on at least one value of y2, which returns PNG media_image1.png 19 419 media_image1.png Greyscale wherein the gating coefficients are based on the result y1 of the first operation of the activation function and the result z2 of the second summation However, Xi teaches: wherein calculating the gating coefficients comprises, for an index x E R1 of the plurality of indices, in one dimension: a first summation of the form y = x + b, b E Rs, where b = [n, n - 1, ...,0, ..., -n + 1, -n], n = [s-1/2] and S is the number of shifts in the one dimension; defining an activation function, which returns the value input to it, if that input value is between 0 and 1, and otherwise returns 0; a first operation of the activation function, with the input (y + 1), giving an output y1; a second operation of the activation function, with the input (y), giving an output y2; and a second summation, operating on at least one value of y2, which returns PNG media_image1.png 19 419 media_image1.png Greyscale wherein the gating coefficients are based on the result y1 of the first operation of the activation function and the result z2 of the second summation (Xi – at step 604 in Fig. 6, a plurality of partial sums is generated (i.e. first summation), each partial sum comprising the sum of input values of the input matrix (i.e. array) that correspond to a common weight value of a set of common weigh values included in the compressed representation. In step 606, a set of products is generated based on the plurality of partial sums and the set of common weight values. At step 608, an activation result (i.e. result of an activation function) is generated by summing the products of the set of products (i.e. second summation) [0055-0057]. Activation function 1002 is configured to accept a single number based on all inputs, and perform a fixed operation. As known in the art, such operations may comprise, for example, sigmoid, tan h or rectified linear unit operations. Input constant 1004 comprises a constant value typically set to 1, which is then weighted according to bias weight b 1012 allowing activation function 1002 to include a configurable zero crossing point as known in the art [0067].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Xi before them, to modify the system of Veeningen, Mendel, Farrugia and Xi with the teachings of Xi as indicated in the limitation above. One would have been motivated to make such a modification to provide for greater efficiency in the training of deep neural networks and in the generation of inferences by deep neural networks (Xi - [0006]). Claims 8 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Veeningen in view of Mendel in view of Farrugia further in view of Xi further in view of Laszlo. Regarding claim 8, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein the shifted positions comprise shifted positions in multiple dimensions and each index is an index x E RN in respective multiple dimensions, and wherein calculating the gating coefficients comprises repeating said calculating said gating coefficients for each dimension of the multiple dimensions, and calculating an outer product of the results However, Xi teaches: wherein calculating the gating coefficients comprises repeating said calculating said gating coefficients for each dimension of the multiple dimensions, and calculating an outer product of the results (Xi – at step 604 in Fig. 6, a plurality of partial sums is generated, each partial sum comprising the sum of input values of the input matrix that correspond to a common weight value of a set of common weigh values included in the compressed representation. In step 606, a set of products is generated based on the plurality of partial sums and the set of common weight values. At step 608, an activation result is generated by summing the products of the set of products [0055-0057]. Activation function 1002 is configured to accept a single number based on all inputs, and perform a fixed operation. As known in the art, such operations may comprise, for example, sigmoid, tan h or rectified linear unit operations. Input constant 1004 comprises a constant value typically set to 1, which is then weighted according to bias weight b 1012 allowing activation function 1002 to include a configurable zero crossing point as known in the art [0067].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Xi before them, to modify the system of Veeningen, Mendel, Farrugia and Xi with the teachings of Xi of wherein calculating the gating coefficients comprises repeating said calculating said gating coefficients for each dimension of the multiple dimensions, and calculating an outer product of the results. One would have been motivated to make such a modification to provide for greater efficiency in the training of deep neural networks and in the generation of inferences by deep neural networks (Xi - [0006]). Veeningen modified by Mendel, Farrugia and Xi does not appear to teach: wherein the shifted positions comprise shifted positions in multiple dimensions and each index is an index x E RN in respective multiple dimensions, and However, Laszlo teaches: wherein the shifted positions comprise shifted positions in multiple dimensions and each index is an index x E RN in respective multiple dimensions, and (Laszlo – a graph may be represented as a two-dimensional array of numerical values with a number of rows and columns equal to the number of nodes in the graph. The component of the array at position (i,j) may have value 1 if the graph includes an edge pointing from node i to node j, and value 0 otherwise. In one example, as part of generating an output graph, the graph generation engine may apply a convolutional filtering operation specified by a filtering kernel to the array representing the synaptic connectivity graph. The graph generation parameters may specify the components of a matrix defining the filtering kernel. As part of generating the output graph, the graph generation may apply a “shifting” operation to the array representing the synaptic connectivity graph, e.g. such that each the value in each component of the array is translated “left”, “right”, “up”, or “down” [0243].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia, Xi and Laszlo before them, to modify the system of Veeningen, Mendel, Farrugia, and Xi with the teachings of Laszlo of wherein the shifted positions comprise shifted positions in multiple dimensions and each index is an index x E RN in respective multiple dimensions, and. One would have been motivated to make such a modification to smooth the values in the array (Laszlo - [0135]). Regarding claim 14, Veeningen modified by Mendel, Farrugia and Xi does not appear to teach: wherein the method is implemented by hardware logic adapted to implement a neural network However, Laszlo teaches: wherein the method is implemented by hardware logic adapted to implement a neural network (Laszlo – a method is performed by one or more data processing apparatus for training a student neural network having a set of student neural network parameters. The method comprises repeatedly performing operations including processing a training input using the student neural network to generate a student neural network output including a respective score for each of multiple classes [0017]. The term “data processing apparatus” refers to data processing hardware and encompasses all kinds of apparatus [0283].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia, Xi and Laszlo before them, to modify the system of Veeningen, Mendel, Farrugia, and Xi with the teachings of Laszlo of wherein the method is implemented by hardware logic adapted to implement a neural network. One would have been motivated to make such a modification to smooth the values in the array (Laszlo - [0135]). Claims 11-12 are rejected under 35 U.S.C. 103 as being unpatentable over Veeningen in view of Mendel in view of Farrugia further in view of Fenney. Regarding claim 11, Veeningen modified by Mendel and Farrugia does not appear to teach: comprising interpolating between data elements of the source array, wherein the method of indexing is used to retrieve data elements for the interpolating However, Fenney teaches: comprising interpolating between data elements of the source array, wherein the method of indexing is used to retrieve data elements for the interpolating (Fenney – interpolation logic described herein provides a good approximation to a bicubic interpolation, without performing all the calculation normally needed for a bicubic interpolation. At each of a set of predetermined interpolation positions within an array of data points, a set of predetermined weights represent a bicubic interpolation which can be applied to the data points. For a plurality of the predetermined interpolation positions which surround the sampling position, the corresponding sets of predetermined weights and the data points are used to determine a plurality of surrounding interpolated values which represent results of performing the bicubic interpolation at the surrounding predetermined interpolation positions [Abstract].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Fenney before them, to modify the system of Veeningen, Mendel and Farrugia with the teachings of Fenney of comprising interpolating between data elements of the source array, wherein the method of indexing is used to retrieve data elements for the interpolating. One would have been motivated to make such a modification to determine an interpolated value at a sampling position within the array (Fenney - [Col. 1 lines 8-11]). Regarding claim 12, Veeningen modified by Mendel and Farrugia does not appear to teach: wherein the interpolating comprises linear or bilinear interpolation, or bicubic interpolation However, Fenney teaches: wherein the interpolating comprises linear or bilinear interpolation, or bicubic interpolation (Fenney – interpolation logic described herein provides a good approximation to a bicubic interpolation, without performing all the calculation normally needed for a bicubic interpolation. At each of a set of predetermined interpolation positions within an array of data points, a set of predetermined weights represent a bicubic interpolation which can be applied to the data points. Fr a plurality of the predetermined interpolation positions which surround the sampling position, the corresponding sets of predetermined weights and the data points are used to determine a plurality of surrounding interpolated values which represent results of performing the bicubic interpolation at the surrounding predetermined interpolation positions [Abstract].) Accordingly, it would have been obvious to a person of ordinary skill in the art at the time the invention was effectively filed, having the teachings of Veeningen, Mendel, Farrugia and Fenney before them, to modify the system of Veeningen, Mendel, Farrugia and Fenney with the teachings of Fenney of wherein the interpolating comprises linear or bilinear interpolation, or bicubic interpolation. One would have been motivated to make such a modification to determine an interpolated value at a sampling position within the array (Fenney - [Col. 1 lines 8-11]). Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over Veeningen in view of Mendel in view of Farrugia further in view of Laszlo. Conclusion THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to RANJIT P DORAISWAMY whose telephone number is (571)270-5759. The examiner can normally be reached Monday-Friday 9:00 AM - 5:00 PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sanjiv Shah can be reached at (571) 272-4098. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /RANJIT P DORAISWAMY/ Examiner, Art Unit 2166 /SANJIV SHAH/ Supervisory Patent Examiner, Art Unit 2166
Read full office action

Prosecution Timeline

Jan 30, 2025
Application Filed
Sep 29, 2025
Non-Final Rejection — §103
Jan 02, 2026
Response Filed
Feb 27, 2026
Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12591569
METHODS AND SYSTEMS FOR GENERATING ELECTRONIC COMMUNICATIONS FEATURING CONSISTENT DATA STRUCTURING AND DYNAMICALLY-DETERMINED DATA CONTENT FOR END-USER SPECIFIC DATA IN ENVIRONMENTS WITH DATA STORAGE CONSTRAINTS
2y 5m to grant Granted Mar 31, 2026
Patent 12524726
KNOWLEDGE MODELLING AND NATURAL TEXT-BASED QUERYING FRAMEWORK
2y 5m to grant Granted Jan 13, 2026
Patent 12455910
CONTROLLED PROBABILISTIC SENTENCE SPACE EXPANSION
2y 5m to grant Granted Oct 28, 2025
Patent 12430393
SYSTEMS AND METHODS FOR BALANCING DEVICE NOTIFICATIONS
2y 5m to grant Granted Sep 30, 2025
Patent 12393977
USER INTERFACE TO AUGMENT AN IMAGE USING GEOLOCATION
2y 5m to grant Granted Aug 19, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
64%
Grant Probability
99%
With Interview (+43.6%)
3y 9m
Median Time to Grant
Moderate
PTA Risk
Based on 176 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month